Вы не могли бы помочь написать программу перевода из 16-й в 2-ую систему счисления. (с функцией.)

Вы не могли бы помочь написать программу перевода из 16-й в 2-ую систему счисления. (с функцией.)
Гость
Ответ(ы) на вопрос:
Гость
function f16t2(s16:string):string; const   m:array['0'..'F'] of string=     ('0000','0001','0010','0011','0100','0101','0110','0111',      '1000','1001','','','','','','','','1010','1011','1100',      '1101','1110','1111');   m1:array['0'..'F'] of string=     ('0','1','10','11','100','101','110','111','1000','1001','',      '','','','','','','1010','1011','1100','1101','1110','1111'); var   s:string;   i:integer; begin   s16:=UpperCase(s16);   s:=m1[s16[1]]+'''';   for i:=2 to Length(s16) do s:=s+m[s16[i]]+'''';   f16t2:=Copy(s,1,Length(s)-1) end; var   s:string; begin   Write('Введите шестнадцатиричное число: '); Readln(s);   Writeln('В двоичной системе: ',f16t2(s)) end. Тестовое решение: Введите шестнадцатиричное число: 5AC8e2 В двоичной системе: 101'1010'1100'1000'1110'0010 Если разбивка вывода по тетрадам не нужна, можно чуть упростить: function f16t2(s16:string):string; const   m:array['0'..'F'] of string=     ('0000','0001','0010','0011','0100','0101','0110','0111',      '1000','1001','','','','','','','','1010','1011','1100',      '1101','1110','1111');   m1:array['0'..'F'] of string=     ('0','1','10','11','100','101','110','111','1000','1001','',      '','','','','','','1010','1011','1100','1101','1110','1111'); var   s:string;   i:integer; begin   s16:=UpperCase(s16);   s:=m1[s16[1]];   for i:=2 to Length(s16) do s:=s+m[s16[i]];   f16t2:=s end; var   s:string; begin   Write('Введите шестнадцатиричное число: '); Readln(s);   Writeln('В двоичной системе: ',f16t2(s)) end. Тестовое решение: Введите шестнадцатиричное число: 5AC8e2 В двоичной системе: 10110101100100011100010
Не нашли ответ?
Ответить на вопрос
Похожие вопросы