Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Показывать значения в двоичном представлении

Delphi , Синтаксис , Типы и Переменные

Показывать значения в двоичном представлении

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

function BinB(b: Byte): string;
 var
   s: string;
   i: word;
 begin
   s := '';
   for i := 7 downto 0 do
     if (b and (1 shl i)) > 0 then
       s := s + '1'
   else
     s := s + '0';
   BinB := s;
 end;

 function BinW(w: Word): string;
 var
   s: string;
   i: word;
 begin
   s := '';
   for i := 15 downto 0 do
     if (w and (1 shl i)) > 0 then
       s := s + '1'
   else
     s := s + '0';
   BinW := s;
 end;

 function BinL(l: Longint): string;
 var
   HL: HiLo absolute l;
 begin
   BinL := BinW(HL.HiWord) + BinW(HL.LoWord);
 end;

Программный код на Delphi!

Функции BinB, BinW и BinL предназначены для конвертации бинарных чисел из различных типов данных (Byte, Word и Longint) в их бинарные представления как строки.

Рассмотрим каждый функцию:

  1. BinB(b: Byte): string;
    • Функция принимает значение типа Byte (8-битное неотрицательное целое число) в качестве входного параметра.
    • Она инициализирует пустую строку s.
    • Цикл проходит от 7 до 0 (включительно), соответствующее битам бинарного представления.
    • Для каждой итерации функция проверяет, установлен ли текущий бит (b and (1 shl i) > 0) и добавляет символ '1' или '0' в строку s соответственно.
    • Полученная строка присваивается обратно переменной результата функции BinB.
  2. BinW(w: Word): string;
    • Функция принимает значение типа Word (16-битное неотрицательное целое число) в качестве входного параметра.
    • Логика аналогична BinB, но цикл проходит от 15 до 0, охватывая все 16 бит.
  3. BinL(l: Longint): string;
    • Функция принимает значение типа Longint (32-битное подписанное целое число) в качестве входного параметра.
    • Она использует структуру HiLo для разделения Longint на высокий порядок слова (HL.HiWord) и низкий порядок слова (HL.LoWord).
    • Функция затем конкатенирует бинарные представления обоих слов, используя функцию BinW, чтобы получить окончательный результат.

В целом, эти функции полезны для отладки или логирования при работе с бинарными данными в Delphi. Вы можете использовать их для визуализации бинарного представления своих типов данных.

Альтернативное решение - использовать встроенную функцию IntToBin (доступна начиная с Delphi 2010) для конвертации целых чисел в строковые представления:

function BinB(b: Byte): string; begin Result := IntToBin(b); end;
function BinW(w: Word): string; begin Result := IntToBin(w); end;
function BinL(l: Longint): string; begin Result := IntToBin(l); end;

Обратите внимание, что IntToBin - более компактное и эффективное решение, но может не предоставлять тот же уровень контроля, как оригинальная реализация.

В статье описаны функции в языке Delphi для конвертации целых чисел в двоичное представление, которые позволяют преобразовать значения типа Byte, Word и Longint в строку с символами "0" и "1".


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Типы и Переменные ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:36:59/0.0058078765869141/1