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
2)1989
3)1969
4)1969
5)2001
ответ: 43125