Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/55: Рейтинг темы: голосов - 55, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 01.11.2020
Сообщений: 48

Перевести число в прямой, обратный и дополнительный код

16.03.2021, 00:30. Показов 13281. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто-нибудь может мне помочь?Мне нужно перевести число в прямой,обратный и дополнительный код.
Это число дано в 2-ой с/с. Я успел перевести в прямой и обратный код но в дополнительный мне не получается
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def opp_equal(num):       #обратный код
        current = num
        if current[0] == '0':
            break;
            '''
            entry_box.delete(0,'end')
            entry_box.insert(0,current)
            result_list.append(current)'''
        if current[0] == '1':
            reverse = current[1:]
            rev = ''
            for i in reverse:
                if i == '1':
                    rev += '0'
                elif i == '0':
                    rev += '1'
            rev = '1' + rev
            '''
            entry_box.delete(0,'end')
            entry_box.insert(0,rev)
            result_list.append(rev)'''
    def dop_equal(num):     #дополнительный
        current = num
        current = str(int(current) + 1)
        rev = ''
num = '00000001'
Спасибо заранее
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2021, 00:30
Ответы с готовыми решениями:

Перевести число из десятичной системы в прямой, обратный и дополнительный код Delphi 7
добрый вечер, всем участникам прекрасного форума. помогите, пожалуйста, написать программу на Delphi 7 вот задание: Перевести число...

Перевести X и Y в прямой, обратный и дополнительный коды
Перевести X и Y в прямой, обратный и дополнительный коды. Сложить их в обратном и дополнительном кодах. Результат перевести в прямой код....

прямой, обратный и дополнительный код
Мы вводим число в десятичной системе, оно переводится в двоичное и строится прямой, обратный и дополнительный код

3
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
16.03.2021, 16:26
Fizzy, Начать нужно с того, что, когда Вы копируете сюда код своей программы, используйте в окне кнопку Python ('Выделить код Python') и туда, между тегами, вставляйте свою программу, что бы не пропадали отступы из Вашей программы. Тогда будет проще отвечать на Ваш вопрос, учитывая, что ошибка у Вас может быть и в неправильных отступах. Отступы являются частью синтаксиса Python.

Добавлено через 23 минуты
Fizzy, Когда Вы работаете с дополнительным кодом, он будет выглядеть по разному для компьютеров разной разрядности 4, 8, 16, 32. Хотя вычисления будут одинаковыми. Поэтому укажите для какой разрядности Вы хотите получить дополнительный код.

https://ru.qaz.wiki/wiki/Two%27s_complement
Я в свое время как то разобрался с дополнениями, но сейчас подзабыл. Если сами не разберетесь и никто не подскажет, то позже освежу у себя в памяти и попробую помочь.

Добавлено через 8 минут
Для понимания инверсии ~ можете еще посмотреть
"""https://f o o o b a r.com/questions/13665/bit-wise-operation-unary-invert"""
Взял в кавычки, так как иначе ссылка не выводится
И уберите пробелы в f o o o b a r.com

Добавлено через 1 час 26 минут
Более простым языком
"""https://o t v e t.mail.ru/question/39094525"""
Слитно o t v e t.mail.ru

Добавлено через 1 час 1 минуту

http://www.maksakov-sa.ru/EGEE... index.html

Добавлено через 12 минут
Цитата из последней ссылки:
"Прямой код используется при хранении чисел в памяти ЭВМ, а также при выполнении операций умножения и деления, но формат представления чисел в прямом коде неудобен для использования в вычислениях, поскольку сложение и вычитание положительных и отрицательных чисел выполняется по–разному, а потому требуется анализировать знаковые разряды операндов. Поэтому прямой код практически не применяется при реализации в АЛУ арифметических операций над целыми числами. Вместо этого формата широкое распространение получили форматы представления чисел в обратном и дополнительном кодах."
1
0 / 0 / 0
Регистрация: 01.11.2020
Сообщений: 48
16.03.2021, 18:42  [ТС]
Я на бумаге могу решить,но вот в питоне не знаю как написать этот дополнительный код в 8 разрядной системы
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
16.03.2021, 19:38
Fizzy, Если на бумажке можете, то занесите в результат в следующем формате
например для числа 11
11 -> '0b00001011' прямой код положительного числа без знакового разряда
-11 -> '0b00001011' прямой код отрицательного числа без знакового разряда
11 -> '0b00001011' обратный код положительного числа (совпадает с прямым) без знакового разряда
-11 -> '0b11110100' обратный код отрицательного числа без знакового разряда
и так далее ...
К Вашему коду на бумажке добавляете для положительного числа нули, дополнив до восьми разрядов,
А для отрицательного числа добавляете спереди единицы (хотя при инверсии они сами появятся).
Ноль и b (0b) в начале строки говорит что это двоичный код.
Python
1
-11 -> 11110100   обратный код отрицательного числа без знакового разряда
Добавлено через 5 минут
Fizzy, Вот я начал писать код, но не доделал, мне нужно уходить.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Прямой, обратный и дополнительный код
 
n = 11
r1 = bin(n)[2:]
res = '0' * (8-len(r1)) + r1
print(res)    # 11 -> 00001011   прямой код положительного числа без знакового разряда
 
n = -11
r1 = bin(-n)[2:]
res = '0' * (8-len(r1)) + r1
print(res)    # -11 -> 00001011   прямой код отрицательного числа без знакового разряда
 
n = 11
r1 = bin(n)[2:]
res = '0' * (8-len(r1)) + r1
print(res)    # 11 -> 00001011   обратный код положительного числа (совпадает с прямым) без знакового разряда
 
n = -11
r1 = bin(~(-n))[4:]
res = '1' * (7-len(r1)) + '0' + r1
print(res)    # -11 -> 11110100   обратный код отрицательного числа без знакового разряда
Выводит:
Python
1
2
3
4
00001011
00001011
00001011
11110100
Добавлено через 3 минуты
Для дополнительного кода доделайте сами. Как он вычисляется, по ссылке есть. Инверсия плюс 1. Я Раньше разобрался с этим, но сейчас подзабыл.

Добавлено через 5 минут
Дополнительный код, это большое положительное число, которое ведет себя как маленькое отрицательное число при сложении чисел. Этот эффект возникает из за того что происходит переполнение и единица выходящая за пределы старшего разряда компьютера пропадает (отбрасывается). Таким образом происходит замена вычитания сложением положительных чисел. Что бы понять как это происходит, нужно внимательно разбираться. Прием хитрый.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.03.2021, 19:38
Помогаю со студенческими работами здесь

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

Прямой, обратный и дополнительный код
Добрый день, очень прошу помочь с решение данной задачи: Для двоичной системы построить прямой, обратный и дополнительный код как для...

Прямой, обратный и дополнительный код
Нужна помощь ! Нужно чтобы вводилось два числа в десятичной системе , и выводилось в двоичной системе прямым, обратным и дополнительным...

Прямой обратный дополнительный код
procedure programma; var i,pp,kod,chislo,op,po:integer; c,a,b:string; rez :array of integer; begin clrscr; i:=0;...

Прямой, обратный и дополнительный код
Что это и как работать с ними?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru