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

0 голосов
62 просмотров

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


Информатика (4.0k баллов) | 62 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

// 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

(150k баллов)