Как перевести двоичный код в десятичную систему счисления, используя функцию? - 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;
Объяснение кода листинга программы
- Функция
k2
принимает на вход параметрk
типаByte
(беззнаковое число, ограниченное диапазоном от 0 до 255). - Если
k
больше 0, то функцияk2
вызывает саму себя, передавая в качестве аргументаk-1
, и результат умножает на 2. - Если
k
равно 0 или меньше, то функцияk2
возвращает 1. - Функция
BinToInt
принимает на вход параметрS
типаString
(строка символов). - Если длина строки
S
больше 1, то функцияBinToInt
вызывает функциюk2
, передавая в качестве аргументаLength(S)-1
, и добавляет к результату разность между ASCII-кодом первого символа строкиS
и ASCII-кодом символа '0'. - Если длина строки
S
равна 1, то функцияBinToInt
возвращает разность между ASCII-кодом первого символа строкиS
и ASCII-кодом символа '0'. - В пункте 5 в качестве аргумента для функции
k2
используется результат вызова функцииCopy
, которая создает новую строку, начиная со второго символа исходной строки и заканчивая последним символом исходной строки (исключая последний символ). Длина новой строки равна длине исходной строки минус 1. - Функция
BinToInt
вызывается в пункте 5 с аргументом, созданным функциейCopy
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д