Тема: Help!!!
Показать сообщение отдельно
  #3  
Старый 01.07.2006, 20:26
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Вот, нашел несколько вариантов функции, которая переводит десятичное число в двоичный код. Выбирай любой. Первый аргумент - десятичное число, второй - количество знаков, которое будет в двоичном коде после преобразования.

Код:
// Первый вариант функции 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;
Ответить с цитированием