Дано целое число в двоичной системе счисления, т.е. последовательность цифр 0 и 1. составить программу перевода этого числа в восьмеричную систему счисления.
// 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
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