Вопрос задан 09.06.2026 в 11:25.
Предмет Информатика.
Спрашивает Абыз Дильназ.
Дано целое число в двоичной системе счисления, т. е. последовательность цифр 0 и 1. Составьте программу перевода этого числа в восьмеричную систему счисления.
Ответы на вопрос
Отвечает Шидловский Данил.
Самый простой способ — разбить двоичную запись на группы по 3 цифры справа налево, потому что одна восьмеричная цифра соответствует ровно трём двоичным.
Алгоритм такой:
-
Считать двоичную строку.
-
Если длина строки не делится на 3, дописать слева нули.
-
Разбить строку на тройки.
-
Каждую тройку перевести в число от 0 до 7.
-
Вывести получившуюся строку, убрав лишние нули слева.
Пример:
-
двоичное число
101111 -
разбиваем:
101 111 -
это
5 7 -
ответ:
57
Если длина не кратна 3:
-
1101 -
дополняем слева:
001101 -
разбиваем:
001 101 -
это
1 5 -
ответ:
15
Программа на Python:
Pythons = 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:
Pythons = input().strip()
print(oct(int(s, 2))[2:])
Но в учебных задачах чаще ожидают именно первый вариант, где видно сам перевод по группам.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

