Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.07.2006, 17:20
18A35 18A35 вне форума
Прохожий
 
Регистрация: 01.07.2006
Сообщения: 1
Репутация: 10
По умолчанию Help!!!

Проблема такова: Требуется получить двоичный код десятичного числа!
Может быть имется встроенная функция для данной операции. своя функция получается довольно громоздкой!!!
функция HexToBin преобразует строковые данные готвого двоичного числа!!
Ответить с цитированием
  #2  
Старый 01.07.2006, 18:51
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
Стрелка :(

Если впаривает - я вечером на тему отвечу.. была у мя где-то такая ф-я но я ща не дома, а за надёжность того что я могу написпть- я не отвечаю....
чуто сто см. http://www.delphiworld.narod.ru
жди ответ ..
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #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;

Последний раз редактировалось Decoding, 01.07.2006 в 20:31.
Ответить с цитированием
  #4  
Старый 02.07.2006, 01:03
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
Стрелка :)

Комментарии излишни...
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:31.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter