![]() |
|
|
#1
|
|||
|
|||
|
Проблема такова: Требуется получить двоичный код десятичного числа!
Может быть имется встроенная функция для данной операции. своя функция получается довольно громоздкой!!! функция HexToBin преобразует строковые данные готвого двоичного числа!! |
|
#2
|
||||
|
||||
|
Если впаривает - я вечером на тему отвечу.. была у мя где-то такая ф-я но я ща не дома, а за надёжность того что я могу написпть- я не отвечаю....
чуто сто см. http://www.delphiworld.narod.ru жди ответ .. ![]() |
|
#3
|
||||
|
||||
|
Вот, нашел несколько вариантов функции, которая переводит десятичное число в двоичный код. Выбирай любой. Первый аргумент - десятичное число, второй - количество знаков, которое будет в двоичном коде после преобразования.
Код:
// Первый вариант функции 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;Последний раз редактировалось Decoding, 01.07.2006 в 20:31. |
|
#4
|
||||
|
||||
|
Комментарии излишни...
|