function Pow(x,y:integer):integer; begin if y>0 then Pow:=Pow(x,y-1)*x else Pow:=1; end;
function ToDec(A : string) : integer; var L : Byte; begin if A = '' then ToDec := 0 else begin L := length(A); case A[1] of '0' : ToDec := ToDec(Copy(A, 2, L - 1)); '1' : ToDec := Pow(2, L - 1) + ToDec(Copy(A, 2, L - 1)); end; end; end;
begin clrscr; write('Введите двоичное число: '); readln(s); writeln('Это число в десятичной системе : ', ToDec(S)); readkey; end.
Program ToDec;
Uses crt;
var s:string;
n,l,i:integer;
function Pow(x,y:integer):integer;
begin
if y>0 then Pow:=Pow(x,y-1)*x
else Pow:=1;
end;
function ToDec(A : string) : integer;
var L : Byte;
begin
if A = '' then ToDec := 0
else begin
L := length(A);
case A[1] of
'0' : ToDec := ToDec(Copy(A, 2, L - 1));
'1' : ToDec := Pow(2, L - 1) + ToDec(Copy(A, 2, L - 1));
end;
end;
end;
begin
clrscr;
write('Введите двоичное число: ');
readln(s);
writeln('Это число в десятичной системе : ', ToDec(S));
readkey;
end.
1₂ = 1₁₀
10₂ =2₁₀
11₂ = 3₁₀
100₂ = 4₁₀
101₂ = 5₁₀
110₂ = 6₁₀
111₂ = 7₁₀
1000₂ = 8₁₀
1001₂ = 9₁₀
1010₂ = 10₁₀
1011₂ = 11₁₀
1100₂ = 12₁₀
1101₂ = 13₁₀
1110₂ = 14₁₀
1111₂ = 15₁₀
это таблица для перевода координат точек в 10-ную систему
Объяснение:
1₂ = 1*2⁰ = 1₁₀
10₂ = 0*2⁰ + 1*2¹ = 2₁₀
11₂ = 1*2⁰ + 1*2¹ = 3₁₀
100₂ = 0*2⁰ + 0*2¹ + 1*2² = 4₁₀
101₂ = 1*2⁰ + 0*2¹ + 1*2² = 5₁₀
110₂ = 0*2⁰ + 1*2¹ + 1*2² = 6₁₀
111₂ = 1*2⁰ + 1*2¹ + 1*2² = 7₁₀
1000₂ = 0*2⁰ + 0*2¹ + 0*2² + 1*2³ = 8₁₀
1001₂ = 1*2⁰ + 0*2¹ + 0*2² + 1*2³ = 9₁₀
1010₂ = 0*2⁰ + 1*2¹ + 0*2² + 1*2³ = 10₁₀
1011₂ = 1*2⁰ + 1*2¹ + 0*2² + 1*2³ = 11₁₀
1100₂ = 0*2⁰ + 0*2¹ + 1*2² + 1*2³ = 12₁₀
1101₂ = 1*2⁰ + 0*2¹ + 1*2² + 1*2³ = 13₁₀
1110₂ = 0*2⁰ + 1*2¹ + 1*2² + 1*2³ = 14₁₀
1111₂ = 1*2⁰ + 1*2¹ + 1*2² + 1*2³ = 15₁₀