:))
{Binary to decimal
This function gets binary number as a String and will return decimaal number as an Integer}
function bin2dec(getal:String): Integer;
var
I: Integer;
uitvoer : Integer;
begin
uitvoer := 0;
for I := 0 to length(getal) -1 do
begin
if getal[length(getal) - I] = '1' then
begin
uitvoer := uitvoer + 1 shl (I);
end;
end;
bin2dec:=uitvoer;
end;
{Returns a string in which the character order of a specified string is reversed}
function ReverseString(S : String): String;
var
i : Integer;
begin
Result := '';
For i := Length(S) DownTo 1 Do
Begin
Result := Result + Copy(S,i,1) ;
End;
End;
{
Decimaal to binary
This function gets a decimal number as Integer and will return the binary number as a String
}
function dec2bin(getal:Integer): String;
var
uitvoer:String;
getal_met_rest : Real;
begin
while getal > 0 do
begin
getal_met_rest := getal / 2;
if frac(getal_met_rest) = 0
then uitvoer := uitvoer + '0'
else uitvoer := uitvoer + '1';
getal := trunc(getal_met_rest);
end;
dec2bin:=ReverseString(uitvoer);
end;
{
This function gets a decimal number as an Integer and will return the HEX number as a String
}
function dec2hex(getal:Integer): String;
var
uitvoer: String;
getal_met_rest : Real;
S : Integer;
begin
while getal > 0 do
begin
getal_met_rest := getal / 16;
S := getal - (trunc(getal_met_rest)*16);
if S < 10 then uitvoer := uitvoer + IntToStr(S);
if S = 10 then uitvoer := uitvoer + 'A';
if S = 11 then uitvoer := uitvoer + 'B';
if S = 12 then uitvoer := uitvoer + 'C';
if S = 13 then uitvoer := uitvoer + 'D';
if S = 14 then uitvoer := uitvoer + 'E';
if S = 15 then uitvoer := uitvoer + 'F';
getal := trunc(getal_met_rest);
end;
dec2hex:=ReverseString(uitvoer);
end;
{
This function gets hex number as a String and will return the decimamaal number as an Integer
}
function hex2dec(getal: String) : Integer;
var
uitvoer: Integer;
I: Integer;
dec_number: Integer;
begin
uitvoer := 0;
getal := ReverseString(getal);
for I := 1 to length(getal) do
begin
if getal[I] = '1' then dec_number := 1;
if getal[I] = '2' then dec_number := 2;
if getal[I] = '3' then dec_number := 3;
if getal[I] = '4' then dec_number := 4;
if getal[I] = '5' then dec_number := 5;
if getal[I] = '6' then dec_number := 6;
if getal[I] = '7' then dec_number := 7;
if getal[I] = '8' then dec_number := 8;
if getal[I] = '9' then dec_number := 9;
if getal[I] = 'a' then dec_number := 10;
if getal[I] = 'A' then dec_number := 10;
if getal[I] = 'b' then dec_number := 11;
if getal[I] = 'B' then dec_number := 11;
if getal[I] = 'c' then dec_number := 12;
if getal[I] = 'C' then dec_number := 12;
if getal[I] = 'd' then dec_number := 13;
if getal[I] = 'D' then dec_number := 13;
if getal[I] = 'e' then dec_number := 14;
if getal[I] = 'E' then dec_number := 14;
if getal[I] = 'f' then dec_number := 15;
if getal[I] = 'F' then dec_number := 15;
uitvoer := uitvoer + (dec_number * trunc(Power(16, I-1)));
end;
hex2dec:=uitvoer;
end;
{
This function gets a decimal number as an Integer and will return the octal number as a String
}
function dec2oct(getal:Integer): String;
var
uitvoer: String;
getal_met_rest : Real;
begin
while getal > 0 do
begin
getal_met_rest := getal / 8;
uitvoer := uitvoer + IntToStr(getal - (trunc(getal_met_rest)*8));
getal := trunc(getal_met_rest);
end;
dec2oct:=ReverseString(uitvoer);
end;
{
This function gets octal number as a String and will return the decimamaal number as an Integer
}
function oct2dec(getal: String) : Integer;
var
uitvoer: Integer;
I: Integer;
begin
uitvoer := 0;
getal := ReverseString(getal);
for I := 1 to length(getal) do
begin
uitvoer := uitvoer + (StrToInt(getal[I]) * trunc(Power(8, I-1)));
end;
oct2dec:=uitvoer;
end;