Дополнительный код онлайн
Автор Кто-я Сек-рет задал вопрос в разделе Другие языки и технологии
Как найти прямой, обратный и дополнительный код????Примеры пожалуйста:) и получил лучший ответ
Ответ от Миоко Таканава[гуру]
Для положительных чисел прямой, обратный и дополнительный коды совпадают.
Для отрицательных:
В прямом коде просто старший разряд устанавливается в единицу. Пример для 8 разрядов:
+98(10) -> 01100010(2)
-98(10) -> 11100010(2)
В обратном коде все разряды инвертируются. 0 заменяются 1, а единицы нулями. Пример:
+98(10) -> 01100010(2)
-98(10) -> 10011101(2)
В дополнителный код отрицательные числа преобразуются сначала в обратный. Затем к получившемуся коду прибавляется единица:
-98(10) -> 10011101(2)+1=10011110(2)
Миоко Таканава
Гений
(51022)
Целые числа преобразуются в двоичный код последовательным делением на 2 с остатком.
Пример:
98/2=49 (0)
49/2=24 (1)
24/2=12 (0)
12/2=6 (0)
6/2=3 (0)
3/2=1 (1)
1/2=0 (1)
В скобках выписаны остатки от деления. Теперь записываем остатки снизу вверх и получится число в двоичной форме:
1100010
Слева дополняется нулями до размера ячейки памяти. Для 8-ми разрядной ячейки 01100010.
Двоичное 8-ми разрядное число с отрицательным знаком: x= - 01011101
Получаем прямой код: минус - знак числа записывается ввиде 1, коды числа записываются без изменения:
X пр. = 1.01011101.
Для преобразования прямого кода двоичного отрицательного числа в обратный код знаковый разряд оставить без изменения, а в остальных разрядах нули заменить на единицы, а единицы на нули:
Xобр. = 1.10100010.
Для получения дополнительного кода необходимо к младшему разряду числа в обратном коде добавить единицу:
Хдоп. = 1.10100011.
Для положительных двоичных чисел (в знаковом разряде записывается 0): X пр. = Xобр. = Хдоп.
Читай внимательно: