Поразрядный вывод целого числа

Модератор: Модераторы

Поразрядный вывод целого числа

Сообщение FeodoR » 17.04.2010 09:38:33

По работе регулярно сталкиваюсь с тем, что надо выводить целые числа поразрядно.
Предлагаю всем желающим (если таковые есть) функцию, которая принимает LongWord на вход, а на выходе имеет строку из 32 символов :)
При желании код оч. легко переводится для всех остальных целочисленных типов.
Код: Выделить всё
function BinaryLongWord(LW : LongWord) : string;
{Возвращает значения разрядов числа в строке (32 символа)}
var
  i,n:byte;
const
  Digits : array[0..$F] of Char = '0123456789ABCDEF';
begin
  n:=1;
  SetLength(BinaryLongWord, 32);
  for i:=31 downto 0 do
  begin
   BinaryLongWorg[n] := Digits[Ord(LW and (1 shl i) <> 0)];
   Inc(n);
  end;
end;
Аватара пользователя
FeodoR
новенький
 
Сообщения: 59
Зарегистрирован: 16.04.2010 12:11:34
Откуда: MSK, ЮАО

Re: Поразрядный вывод целого числа

Сообщение alexrayne » 17.04.2010 10:25:47

Это стеб?
alexrayne
постоялец
 
Сообщения: 125
Зарегистрирован: 03.12.2008 16:56:26

Re: Поразрядный вывод целого числа

Сообщение Дож » 17.04.2010 15:41:31

FeodoR
http://www.freepascal.org/docs-html/rtl/system/str.html

Добавлено спустя 1 минуту 52 секунды:
update
А, не заметил, что у вас шестнадцатиричная.
http://www.freepascal.org/docs-html/rtl ... tohex.html
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 663
Зарегистрирован: 12.10.2008 16:14:47

Re: Поразрядный вывод целого числа

Сообщение FeodoR » 17.04.2010 22:54:40

IntToHex и IntToStr понятно. Они есть в RTL и ими мы тоже пользуемся.
Здесь чуть другое. То есть:
Надо, например, смотреть состояние 32-разрядного регистра ну, например, платы дискретных сигналов, где 1 сигнал = 1 бит. Причём вывод только при отладке. Для этого и была сделана эта функция.
Ей на вход идёт число. Ну, например, $8445B9B9. На выходе будет строка с битиками: '10000100010001011011100110111001'. Регулярно бывает полезно. :)
Аватара пользователя
FeodoR
новенький
 
Сообщения: 59
Зарегистрирован: 16.04.2010 12:11:34
Откуда: MSK, ЮАО

Re: Поразрядный вывод целого числа

Сообщение alexrayne » 17.04.2010 23:33:12

RTFM, посмотрите System.binStr
alexrayne
постоялец
 
Сообщения: 125
Зарегистрирован: 03.12.2008 16:56:26


Вернуться в Алгоритмы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru