Перевести число из 2-ой системы счисления в 10-ую. обеспечить корректность ввода числа в систему cчисления . нельзя использовать стандартные возможности по выводу/вводу чисел.паскаль

Enot811 Enot811    1   11.09.2019 16:40    0

Ответы
kolo120706 kolo120706  10.08.2020 18:15
// 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.

Примеры
Двоичное число: 10101010101111110100010101010101010101010110101010101
Десятичное значение: 6007631318265173

Двоичное число: 11110101010101010010010101010110101011011110100000110100100101010101010101010101010101101010101011010101010101010101010101011111111111110101001010000001010101011111010010101
Десятичное значение: 11473727937279925775504671485025665850663901141319317
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика