Помогли сделать. Может кто сможет помочь в переводе.))) Комментарии расставить, а то у меня мозг взрывается как это работает...
const d = 128;
m = d div 32 - 1;
n = (m + 1) * 4 - 1;
procedure prn_bin(x: array of byte);
var i, j: integer;
begin
for i := high(x) downto 0 do
for j := 7 downto 0 do
begin
write(ord(x[i] and $80 <> 0));
x[i] := x[i] shl 1
end;
writeln
end;
procedure prn_dec(x: array of byte);
var i, t: word;
f: boolean;
s: string;
begin
s := '';
repeat
t := 0;
for i := n downto 0 do
begin
t := t * 256 + x[i];
x[i] := t div 10;
t := t mod 10
end;
s := char(ord('0') + t) + s;
f := true;
for i := n downto 0 do f := f and (x[i] = 0);
until f;
writeln(s)
end;
type T128BitRec = packed record
case k: integer of
0:(a: array[0..m] of longword);
1:(b: array[0..n] of byte)
end;
var r: T128BitRec;
i: word;
begin
randomize;
for i := m downto 0 do r.a[i] := trunc(random * high(longword)); //генерировать число можно и в цикле
prn_bin(r.b); //печатаем двоичное представление числа
prn_dec(r.b); //печатаем десятичное представление числа
readln
end.
const d = 128;
m = d div 32 - 1;
n = (m + 1) * 4 - 1;
procedure prn_bin(x: array of byte);
var i, j: integer;
begin
for i := high(x) downto 0 do
for j := 7 downto 0 do
begin
write(ord(x[i] and $80 <> 0));
x[i] := x[i] shl 1
end;
writeln
end;
procedure prn_dec(x: array of byte);
var i, t: word;
f: boolean;
s: string;
begin
s := '';
repeat
t := 0;
for i := n downto 0 do
begin
t := t * 256 + x[i];
x[i] := t div 10;
t := t mod 10
end;
s := char(ord('0') + t) + s;
f := true;
for i := n downto 0 do f := f and (x[i] = 0);
until f;
writeln(s)
end;
type T128BitRec = packed record
case k: integer of
0:(a: array[0..m] of longword);
1:(b: array[0..n] of byte)
end;
var r: T128BitRec;
i: word;
begin
randomize;
for i := m downto 0 do r.a[i] := trunc(random * high(longword)); //генерировать число можно и в цикле
prn_bin(r.b); //печатаем двоичное представление числа
prn_dec(r.b); //печатаем десятичное представление числа
readln
end.