Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program binario;
- uses math;
- type TDynamicLongWordList = array of longword;
- function binary(n : longword) : string;
- var Power2List : TDynamicLongWordList = nil;
- bits : byte = 0;
- i : smallint;
- begin
- binary := '';
- bits := trunc(ln(n)/ln(2));
- SetLength(Power2List, bits+1);
- for i := 0 to bits do
- Power2List[bits-i] := trunc(Power(2, i));
- for i := 0 to bits do
- if n >= Power2List[i] then begin
- binary := binary + '1';
- dec(n, Power2List[i]);
- end else
- binary := binary + '0';
- end;
- function numeric(b : string) : longword;
- var Power2List : TDynamicLongWordList = nil;
- bits : byte = 0;
- i : smallint;
- begin
- numeric := 0;
- bits := length(b)-1;
- SetLength(Power2List, bits+1);
- for i := 0 to bits do
- Power2List[bits-i] := trunc(Power(2, i));
- for i := 0 to bits do
- if b[i+1] = '1' then
- inc(numeric, Power2List[i]);
- end;
- var num : longword = 0;
- s : string = '';
- begin
- writeln('BINARY TEST');
- repeat
- readln(num);
- if (num > 0) then writeln(num, ' => ', binary(num));
- until num = 0;
- writeln('NUMERIC TEST');
- repeat
- readln(s);
- if (s <> '') and (s <> '0') then writeln(s, ' => ', numeric(s));
- until s = '0';
- end.
Advertisement
Add Comment
Please, Sign In to add comment