Pascal
Modified: Wednesday, 22-12-2021 07:00 AM
Chuyển đổi hệ số
10 <=> BIN
10 <=> HEX
program Chuyen10sang2;
var a,t:int64;
s1,s:string;
begin
write('Nhap so nguyen duong:');
readln(a);
while a<>0 do
begin
t := a mod 2;
str(t,s1);
s := s1+s;
a := a div 2;
end;
write(s);
readln;
end.
program chuyen2sang10;
uses math;
var h:string;
i,n:byte;
s:int64;
begin write('Nhap chuoi so Nhi phan: ');
readln(h);
s := 0;
for i:=length(h) downto 1 do begin
val(h[i],n);
s := s+n*round(power(2,length(h)-i));
end;
write('Gia tri ',h,'(2) = ',s,'(10)');
readln;
end.
program chuyen10sang16;
var a,t:int64;
s1,s:string;
begin
write('Nhap so nguyen duong:');
readln(a);
while a<>0 do
begin
t := a mod 16;
case t of
1..9: str(t,s1);
10:s1:='A';
11:s1:='B';
12:s1:='C';
13:s1:='D';
14:s1:='E';
15 :s1:='F';
end;
s := s1+s;
a := a div 16;
end;
write(s);
readln;
end.
program chuyen16sang10;
uses math;
var a:string;
i,vt:byte;
n:int64;
// Lấy giá trị từng số
function value(s:char;x:byte):longint;
var vl:byte;
begin
s := upcase(s);
case s of
'1'..'9':val(s,vl);
'A'..'F':vl:=(ord(s)-55);
end;
exit(round(power(16,x))*vl);
end;
// Chương trình chính
begin
write('Nhap so he 16:');
readln(a);
n := 0;
vt := 0; //Chỉ số tính từ phải sang trái
for i:=length(a) downto 1 do
begin
n := n+value(a[i],vt);
inc(vt);
end;
// Ghi ra kết quả
write(n);
readln;
end.