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:=send;var s:string;begin Write('Введите шестнадцатиричное число: '); Readln(s); Writeln('В двоичной системе: ',f16t2(s))end.
Тестовое решение:Введите шестнадцатиричное число: 5AC8e2В двоичной системе: 10110101100100011100010