Преобразование целого числа в набор битов и обратноDelphi , Синтаксис , ПреобразованияПреобразование целого числа в набор битов и обратно
Автор: Delirium { **** UBPFD *********** by delphibase.endimus.com **** >> Преобразование целого числа в набор битов и обратно При операциях с битовыми значениям удобно обращаться к кажджому биту, как к элементу строки, причём так, чтобы 1-й бит - был 1-й символ строки, а не последний. Зависимости: Windows, SysUtils, Math Автор: Delirium, Master_BRAIN@beep.ru, ICQ:118395746, Москва Copyright: Delirium (Master BRAIN) Дата: 29 мая 2002 г. ***************************************************** } function IntToRBin32(Value: Cardinal): string; var i: integer; begin SetLength(Result, 32); for i := 1 to 32 do if (Value shl (i - 1)) shr 31 = 0 then Result[33 - i] := '0' else Result[33 - i] := '1'; end; function RBin32ToInt(Value: string): Cardinal; var i: integer; begin Result := 0; for i := 1 to Length(Value) do if Value[i] = '1' then Result := Result + Round(IntPower(2, i - 1)); end; Программный код на Delphi, который содержит две функции: Функция Эта функция принимает целочисленное значение как входной параметр и конвертирует его в 32-разрядную строковую представление в двоичном формате. Строка представлена в обратном порядке, то есть наименее значимый бит (LSB) хранится в начале строки, а наибольшее значимое значение (MSB) хранится в конце. Распределение функции:
Функция Эта функция принимает строковое представление в двоичном формате как входной параметр и конвертирует его обратно в целочисленное значение. Распределение функции:
Альтернативное решение: Вместо реализации этих функций с нуля можно использовать встроенные функции конвертации Delphi, такие как Например:
В этом альтернативном решении С другой стороны, В статье описывается функции IntToRBin32 и RBin32ToInt, которые предназначены для преобразования целых чисел в набор битов и обратно. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Преобразования ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |