Viết chương trình nhập vào một số nhị phân dài không quá 63 ký tự chữ. Hãy in ra rằng biểu diễn của nó trong hệ đếm cơ số 10. PASCAL
1 câu trả lời
uses crt;
var s: string;
function char_to_int(c: char): qword;
begin
exit(ord(c) - 48);
end;
function AKAP(a, b: longint): qword;
var tmp: qword;
begin
if b = 0 then exit(1);
tmp:=AKAP(a, b div 2);
if b and 1 = 1 then exit(a * tmp * tmp);
exit(tmp * tmp);
end;
function decimal(s: string): qword;
var i, j: longint;
res:qword;
begin
res:=0; j:=0;
for i:=length(s) downto 1 do
begin
inc(res, char_to_int(s[i]) * AKAP(2, j));
inc(j);
end;
exit(res);
end;
begin
clrscr;
readln(s);
writeln(decimal(s));
readln;
end.
Câu hỏi trong lớp
Xem thêm