Вопрос задан 09.06.2026 в 11:25. Предмет Информатика. Спрашивает Абыз Дильназ.

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

Перейти к ответам

Ответы на вопрос

Отвечает Шидловский Данил.

Самый простой способ — разбить двоичную запись на группы по 3 цифры справа налево, потому что одна восьмеричная цифра соответствует ровно трём двоичным.

Алгоритм такой:

  1. Считать двоичную строку.

  2. Если длина строки не делится на 3, дописать слева нули.

  3. Разбить строку на тройки.

  4. Каждую тройку перевести в число от 0 до 7.

  5. Вывести получившуюся строку, убрав лишние нули слева.

Пример:

  • двоичное число 101111

  • разбиваем: 101 111

  • это 5 7

  • ответ: 57

Если длина не кратна 3:

  • 1101

  • дополняем слева: 001101

  • разбиваем: 001 101

  • это 1 5

  • ответ: 15

Программа на Python:

Python
s = input().strip()

# Дополняем слева нулями до длины, кратной 3
while len(s) % 3 != 0:
s = '0' + s

ans = ''
for i in range(0, len(s), 3):
triad = s[i:i+3]
ans += str(int(triad, 2))

# Убираем ведущие нули, но если число равно 0 — оставляем один ноль
ans = ans.lstrip('0')
if ans == '':
ans = '0'

print(ans)

Если нужно, можно сделать и через встроенные функции Python:

Python
s = input().strip()
print(oct(int(s, 2))[2:])

Но в учебных задачах чаще ожидают именно первый вариант, где видно сам перевод по группам.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Информатика 21.05.2026 10:15 9 Гафаров Александр
Задать вопрос