Как перевести двоичный код в десятичную систему счисления, используя функцию? - Free Pascal

Узнай цену своей работы

Формулировка задачи:

хелпните нужно написать функцию перевода двоичного кода в десятичный на паскале

Решение задачи: «Как перевести двоичный код в десятичную систему счисления, используя функцию?»

textual
Листинг программы
Function k2(k : Byte) : Longint; { 2 в сетепени k }
Begin
  If k>0 then k2:=2*k2(k-1)
  else k2:=1;
end;
 
Function BinToInt(S : String) : Longint;
Begin
  If Length(S)>1 then
    BinToInt:=(Ord(S[1])-Ord('0'))*k2(Length(S)-1)+BinToInt(Copy(S,2,Length(S)-1))
  else
    BinToInt:=Ord(S[1])-Ord('0');
end;

Объяснение кода листинга программы

  1. Функция k2 принимает на вход параметр k типа Byte (беззнаковое число, ограниченное диапазоном от 0 до 255).
  2. Если k больше 0, то функция k2 вызывает саму себя, передавая в качестве аргумента k-1, и результат умножает на 2.
  3. Если k равно 0 или меньше, то функция k2 возвращает 1.
  4. Функция BinToInt принимает на вход параметр S типа String (строка символов).
  5. Если длина строки S больше 1, то функция BinToInt вызывает функцию k2, передавая в качестве аргумента Length(S)-1, и добавляет к результату разность между ASCII-кодом первого символа строки S и ASCII-кодом символа '0'.
  6. Если длина строки S равна 1, то функция BinToInt возвращает разность между ASCII-кодом первого символа строки S и ASCII-кодом символа '0'.
  7. В пункте 5 в качестве аргумента для функции k2 используется результат вызова функции Copy, которая создает новую строку, начиная со второго символа исходной строки и заканчивая последним символом исходной строки (исключая последний символ). Длина новой строки равна длине исходной строки минус 1.
  8. Функция BinToInt вызывается в пункте 5 с аргументом, созданным функцией Copy.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.2 из 5
Похожие ответы