Дано целое число в двоичной системе счисления, т.е. последовательность цифр 0 и 1. составить программу перевода этого числа в восьмеричную систему счисления.

Остап1843 Остап1843    1   10.08.2019 10:20    15

Ответы
erushevsascha erushevsascha  04.10.2020 09:06
// PascalABC.NET 3.2, сборка 1325 от 19.10.2016
function BinToOct(s:string):string;
// переводит двоичную триаду в восьмеричную цифру
begin
  case s of
  '000':Result:='0';
  '001':Result:='1';
  '010':Result:='2';
  '011':Result:='3';
  '100':Result:='4';
  '101':Result:='5';
  '110':Result:='6';
  '111':Result:='7';
  end
end;

begin
  var s2:=ReadlnString('Введите целое двочное число');
  var k:=s2.Length mod 3;
  if k<>0 then s2:=(3-k)*'0'+s2; // дополнить до кратной 3 длины
  var s8:='';
  for var i:=1 to s2.Length div 3 do
    s8:=s8+BinToOct(Copy(s2,3*i-2,3));
  Writeln(s8);
end.

Пример
Введите целое двочное число 10101100001
2541
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика