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
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