Перевести число из 2-ой системы счисления в 10-ую. обеспечить корректность ввода числа в систему cчисления . нельзя использовать стандартные возможности по выводу/вводу чисел.паскаль
// PascalABC.NET 3.3, сборка 1579 от 18.11.2017 // Внимание! Если программа не работает, обновите версию!
begin var s:=ReadlnString('Двоичное число:'); if s.MatchValues('[^01]').Count>0 then Writeln('Не двоичное число') else begin var (n,k):=(BigInteger(0),BigInteger(1)); for var i:=s.Length downto 1 do begin if s[i]='1' then n+=k; k*=2 end; Writeln('Десятичное значение: '+n.ToString) end end.
// Внимание! Если программа не работает, обновите версию!
begin
var s:=ReadlnString('Двоичное число:');
if s.MatchValues('[^01]').Count>0 then Writeln('Не двоичное число')
else begin
var (n,k):=(BigInteger(0),BigInteger(1));
for var i:=s.Length downto 1 do begin
if s[i]='1' then n+=k;
k*=2
end;
Writeln('Десятичное значение: '+n.ToString)
end
end.
Примеры
Двоичное число: 10101010101111110100010101010101010101010110101010101
Десятичное значение: 6007631318265173
Двоичное число: 11110101010101010010010101010110101011011110100000110100100101010101010101010101010101101010101011010101010101010101010101011111111111110101001010000001010101011111010010101
Десятичное значение: 11473727937279925775504671485025665850663901141319317