Напишите программу, которая переводит целое число (возможно, отрицательное) из двоичной системы счисления в восьмеричную. Перед отрицательными числами ставится знак "-". Переводить число в десятичную систему не разрешается. Входные данные Входная строка содержит двоичную запись целого числа N Выходные данные Программа должна вывести восьмеричную запись введённого числа.
145
426
Ответы на вопрос:
Видимо, для кодирования отрицательных чисел используется прямой код: записывается минус и затем просто двоичное представление модуля числа.
Алгоритм перевода: разбиваем двоичные цифры на группы по 3 (начиная справа) и переводим каждую группу отдельно.
Код (Python 3):
N = input()
sign = ""
if N[0] == "-":
sign = "-"
N = N[1:]
oct_reversed = ""
while len(N) > 0:
N, last_triplet = N[:-3], N[-3:]
oct_digit = 0
while len(last_triplet) > 0:
oct_digit *= 2
if last_triplet[-1] == "1":
oct_digit += 1
last_triplet = last_triplet[:-1]
oct_reversed += str(oct_digit)
oct = sign + oct_reversed[::-1]
print(oct)
Пример ввода:
-1110010
Пример вывода:
-132
Pascalabc.net версия 3.0 сборка 1150 var a, b: integer; begin readln(a, b); var len : = length(a.tostring) - length(b.tostring); if len > 0 then writeln('в первом больше на ', len) else if len < 0 then writeln('во втором больше на ', abs(len)) else writeln('одинаковое количество цифр'); end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
адэли1212.01.2021 02:07
-
mmila476412.08.2021 19:04
-
567543105.11.2021 02:48
-
natka7331.07.2021 17:40
-
Катер00710.06.2023 04:13
-
Nastya12547333310.04.2022 15:53
-
ВалерияКис30.01.2020 02:08
-
tivvyvvyyvyva29.07.2022 08:19
-
mariya19121529.04.2022 22:15
-
kalaev1976123.03.2023 13:29
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.