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

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

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

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

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

textual
Листинг программы
  1. Function k2(k : Byte) : Longint; { 2 в сетепени k }
  2. Begin
  3.   If k>0 then k2:=2*k2(k-1)
  4.   else k2:=1;
  5. end;
  6.  
  7. Function BinToInt(S : String) : Longint;
  8. Begin
  9.   If Length(S)>1 then
  10.     BinToInt:=(Ord(S[1])-Ord('0'))*k2(Length(S)-1)+BinToInt(Copy(S,2,Length(S)-1))
  11.   else
  12.     BinToInt:=Ord(S[1])-Ord('0');
  13. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы