The following program converts between binary and denary.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var dn,dn2:integer;
bs,bn:string;
procedure denary_binary (dn:integer; var binary_text:string);
var
i :integer;
binary:array[1..8] of integer;
binary_string:string[8];
begin
binary_string:=''; //must initialise to empty string
or else errors arise
for i:= 1 to 8 do
begin
binary[i]:=dn mod 2; //find binary number, 0 or 1
and put into binary array
dn:=dn div 2; //halve current value of denary
number - e.g. 19, 9, 4, 2, 1, 0, 0, 0
end;
for i:=8 downto 1 do //binary digits are in reverse
order so reverse them
binary_string:=binary_string + inttostr(binary[i]);
//copy binary array into binary string in reverse order
binary_text:=binary_string; //output result,
returned via var parameter
end;
function power(a:integer):integer; //function returns 2 ^ a
var
i,c:integer;
begin
c:=1;
for i:= 1 to a do
c:= c * 2; //multiply repeatedly by 2
power:=c;
end;
procedure binary_denary(bn:string; var total:integer);
var
binary:array[1..8] of integer;
i, d1: integer;
begin
total:=0;
if (length (bn)=8) then
for i:=1 to 8 do
begin
d1:= strtoint(bn[i]);
if d1 = 1 then //check for 1 or 0
total:=total + power(8-i); //2 to power
7,6,5,4,3,2,1,0
end;
end;
begin
writeln('Enter a decimal number');
readln(dn);
denary_binary(dn, bs);
writeln(bs);
writeln('Enter an 8 bit binary number');
readln(bn);
binary_denary(bn,dn2);
writeln(dn2);
readln;
end.