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

Преобразование двоичного числа в десятичное 2

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

Преобразование двоичного числа в десятичное 2

- Сколько надо программистов, чтобы ввинтить электрическую лампочку?
- Два - один ввинчивает, а другой устрашающе стоит рядом с дубиной, чтобы не побежал ток.


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

function BinToInt(Value: string): LongInt;
var
  i, Size: Integer;
begin
  Result := 0;
  Size := Length(Value);
  for i := Size downto 0 do
  begin
    if Copy(Value, i, 1) = '1' then
    begin
      Result := Result + (1 shl i);
    end;
  end;
end;

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

Функция IntToBin Эта функция принимает значение типа LongInt и целочисленное значение Size в качестве входных параметров и возвращает строковое представление значения в двоичной системе счисления.

Вот что она делает:

  1. Результат initializes to an empty string ('').
  2. Цикл iterates from Size down to 0 (inclusive). Это означает, что если Size равно 8, например, цикл будет выполняться 8 раз.
  3. Внутри цикла:
    • Она проверяет, имеет ли значение бит в позиции i с помощью оператора bitwise AND (Value and 1 shl i). Если это условие истинно, то это означает, что бит в позиции i установлен в двоичном представлении значения.
    • Если бит установлен, она добавляет '1' к результату; иначе, она добавляет '0'.
  4. Функция возвращает полученный двоичный строковый результат.

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

Вот что она делает:

  1. Результат initializes to 0.
  2. Цикл iterates from the length of the input string (Size) down to 0 (inclusive). Это означает, что если входная строка имеет 8 символов, например, цикл будет выполняться 8 раз.
  3. Внутри цикла:
    • Она извлекает одиночный символ из входной строки с помощью Copy(Value, i, 1).
    • Если этот символ равен '1', она добавляет значение бита в позиции i к результату (используя (1 shl i)). Это эффективно смещает двоичное представление значения влево на i позиций и добавляет 1.
  4. Функция возвращает полученное десятичное значение.

Альтернативное решение Хотя эти функции работают корректно, есть более компактный способ их реализации с помощью встроенных функций строкового манипулирования Delphi: для IntToBin можно использовать функцию IntToBin из модуля SysUtils, а для BinToInt - цикл с помощью процедуры Read из модуля StrUtils.

Данная статья описывает функции в языке Паскаль для преобразования двоичного числа в десятичное и наоборот, а также сопровождается шуткой о программистах, которые пытаются ввинтить электрическую лампочку.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-07-04 06:34:28/0.0063619613647461/0