Вот, нашел несколько вариантов функции, которая переводит десятичное число в двоичный код. Выбирай любой. Первый аргумент - десятичное число, второй - количество знаков, которое будет в двоичном коде после преобразования.
Код:
// Первый вариант функции IntToBin
function IntToBin( Value: integer; Digits: integer ): string;
var
i: integer;
begin
Result := '';
for i := 0 to Digits-1 do
begin
if Value and ( 1 shl i ) > 0
then Result := '1' + Result
else Result := '0' + Result;
end;
end;
// Второй вариант функции IntToBin
function IntToBin( Value: integer; Digits: integer ): string;
var
i: integer;
begin
Result := '';
for i := 0 to Digits-1 do
Result := IntToStr( ( Value and ( 1 shl i ) shr i ) ) + Result;
end;
// Третий вариант функции IntToBin
function IntToBin( Value: integer; Digits: integer ): string;
var
i: integer;
begin
Result := '';
for i := 0 to Digits-1 do
Result := IntToStr( ( Value shr i ) and 1 ) + Result;
end;
Вызывать функцию можно так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
n = 140; // Десятичное число, которое нужно преобразовать
var
i, k: integer;
begin
k := 1;
for i := 1 to n do
begin
k := k * 2;
if k > n then Break;
end;
Caption := IntToBin( n, i );
end;