{ Перевод двоичного числа в десятичное. Символы, отличающиеся от 0 и 1, заменяются нулями. Программа будет работать некорректно при вводе более 31 знака. } var bin:string; i,d:integer; p,dec:longint; begin Write('Введите двоичное число: '); Read(bin); dec:=0; p:=1; for i:=Length(bin) downto 1 do begin if bin[i]='1' then d:=1 else d:=0; dec:=dec+d*p; p:=2*p end; Writeln('Десятичный эквивалент: ',dec) end.
Перевод двоичного числа в десятичное.
Символы, отличающиеся от 0 и 1, заменяются нулями.
Программа будет работать некорректно при вводе
более 31 знака.
}
var
bin:string;
i,d:integer;
p,dec:longint;
begin
Write('Введите двоичное число: '); Read(bin);
dec:=0;
p:=1;
for i:=Length(bin) downto 1 do
begin
if bin[i]='1' then d:=1 else d:=0;
dec:=dec+d*p; p:=2*p
end;
Writeln('Десятичный эквивалент: ',dec)
end.
Тестовое решение:
Введите двоичное число: 1011011001
Десятичный эквивалент: 729