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

Из двоичного представления в целое и наоборот

Delphi , Синтаксис , Преобразования

Из двоичного представления в целое и наоборот

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

{1.}
 {**********************************************************}
 // Binary to Integer 

function BinToInt(Value: string): Integer;
 var
   i, iValueSize: Integer;
 begin
   Result := 0;
   iValueSize := Length(Value);
   for i := iValueSize downto 1 do
     if Value[i] = '1' then Result := Result + (1 shl (iValueSize - i));
 end;


 // Integer to Binary 

function IntToBin1(Value: Longint; Digits: Integer): string;
 var
   i: Integer;
 begin
   Result := '';
   for i := Digits downto 0 do
     if Value and (1 shl i) <> 0 then
       Result := Result + '1'
   else
     Result := Result + '0';
 end;


 function IntToBin2(d: Longint): string;
 var
   x, p: Integer;
   bin: string;
 begin
   bin := '';
   for x := 1 to 8 * SizeOf(d) do
   begin
     if Odd(d) then bin := '1' + bin
     else
       bin := '0' + bin;
     d := d shr 1;
   end;
   Delete(bin, 1, 8 * ((Pos('1', bin) - 1) div 8));
   Result := bin;
 end;

Программный код на языке Delphi для конвертации строк в двоичном формате в целые числа и обратно!

Давайте разбить код:

Конверсия двоичного формата в целое число (BinToInt функция)

Эта функция принимает двоичную строку в качестве входного параметра и возвращает ее эквивалентное целое значение.

  1. Переменная Result инициализируется значением 0.
  2. Переменная iValueSize хранит длину входной двоичной строки.
  3. Цикл for проходит от iValueSize до 1 (включительно).
  4. В каждом шаге цикла, если текущий символ в двоичной строке равен '1', значение Result увеличивается на 2 в степени (iValueSize - i). Это эффективно сдвигает биты результата влево.
  5. Функция возвращает рассчитанное целое значение.

Конверсия целого числа в двоичный формат (IntToBin1 и IntToBin2 функции)

Эти две функции конвертируют целое число в двоичную строку:

IntToBin1

  1. Функция принимает два параметра: Value (целое число) и Digits (число цифр в выходной двоичной строке).
  2. Пустая строка (Result) инициализируется.
  3. Цикл for проходит от Digits до 0 (включительно).
  4. В каждом шаге цикла, если у Value есть бит, установленный в позиции i, к результату добавляется '1'; иначе, добавляется '0'.
  5. Функция возвращает двоичную строку.

IntToBin2

  1. Пустая строка (bin) инициализируется.
  2. Цикл for проходит от 1 до 8 раз размер входного целого числа (в байтах).
  3. В каждом шаге цикла, если входное целое число нечетно, к результату добавляется '1'; иначе, добавляется '0'.
  4. Входное целое число сдвигается вправо на 1 бит (d shr 1).
  5. После цикла любые ведущие нули удаляются из результата строкой Delete(bin, 1, 8 * ((Pos('1', bin) - 1) div 8)).
  6. Функция возвращает двоичную строку.

В целом, эти функции предоставляют полезный набор инструментов для работы с двоичными данными в Delphi.

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


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

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




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


:: Главная :: Преобразования ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-07-06 11:35:27/0.0061678886413574/0