Есть ответ 👍

Напишите программу, которая переводит целое число (возможно, отрицательное) из двоичной системы счисления в восьмеричную. Перед отрицательными числами ставится знак "-". Переводить число в десятичную систему не разрешается. Входные данные Входная строка содержит двоичную запись целого числа N Выходные данные Программа должна вывести восьмеричную запись введённого числа.

145
426
Посмотреть ответы 2

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

Boba35
4,7(8 оценок)

Видимо, для кодирования отрицательных чисел используется прямой код: записывается минус и затем просто двоичное представление модуля числа.

Алгоритм перевода: разбиваем двоичные цифры на группы по 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

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS