
- •Т.В. Сарапулова, и.Е. Трофимов позиционные системы счисления
- •Введение
- •1. Позиционные системы счисления
- •1.1. Основные положения
- •1.2. Классификация позиционных систем счисления
- •1.3. Преобразование чисел
- •1.4. Арифметические операции
- •1.5. Запись чисел в позиционных системах счисления
- •2. Представление данных в памяти эвм
- •2.1. Основные положения
- •2.2. Прямой код
- •2.3. Обратный код
- •2.4. Дополнительный код
- •2.5. Сложение чисел в обратном и дополнительном кодах
- •2.6. Модифицированные обратный и дополнительный коды
- •3. Задание для выполнения лабораторной работы
- •Задание к лабораторной работе
- •Варианты заданий к лабораторной работе
- •4. Рекомендуемая литература
2.3. Обратный код
Обратный код–метод вычислительной математики, позволяющий вычесть одно число из другого, используя только операцию сложения над натуральными числами. Ранее метод использовался в механических калькуляторах (арифмометрах). В настоящее время используется в основном в современной компьютерной технике.
Обратный n-разрядный двоичный код положительного целого числа состоит из одноразрядного кода знака (двоичной цифры 0), за которым следует (n − 1)-разрядное двоичное представление модуля числа (обратный код совпадает с прямым кодом).
Обратный n-разрядный двоичный код отрицательного целого числа состоит из одноразрядного кода знака (двоичной цифры 1), за которым следует (n − 1)-разрядное двоичное число, представляющее собой инвертированное (n − 1)-разрядное представление модуля числа.
У числа 0 имеется два обратных кода: «положительный нуль» 00000000 и «отрицательный нуль» 11111111 (приведены 8-разрядные обратные коды).
n-разрядный
обратный код позволяет представить
числа в диапазоне
.
Примеры представления чисел
Десятичный код |
Двоичный код |
8-разрядный прямой код |
0 -0 5 -5 |
0 0 101 -101 |
00000000 11111111 00000101 11111010 |
2.4. Дополнительный код
Дополнительный код– наиболее распространенный способ представления отрицательных целых чисел в компьютерной арифметике. Он позволяет заменить операцию вычитания на операцию сложения, чем упрощает архитектуру ЭВМ. Дополнительный код отрицательного числа получается инвертированием двоичного числа и прибавлением к нему единицы.
При записи числа в дополнительном коде, старший разряд является знаковым. Если его значение равно 0, то в остальных разрядах записано положительное двоичное число, совпадающее с прямым кодом. Если же знаковый разряд равен 1, то в остальных разрядах записано отрицательное двоичное число, преобразованное в дополнительный код. Для получения значения отрицательного числа все разряды, кроме знакового, инвертируются, а к результату добавляется единица. Обратное преобразование, то есть перевод из дополнительного в прямой код, осуществляется аналогично.
Двоичное
8-разрядное число может представлять
любое целое в диапазоне от −128 до +127.
Если старший разряд равен нулю, то
наибольшее целое число, которое может
быть записано в оставшихся 7 разрядах
равно
.
Примеры представления чисел
Десятичный код |
8-разрядный двоичный |
|
прямой код |
дополнительный код |
|
0 1 -1 -10 |
00000000 00000001 10000001 10001010 |
00000000 00000001 11111111 11110110 |
Примеры преобразования чисел
Преобразуем отрицательное число −5, записанное в прямом коде, в дополнительный.
1. |
Прямой код числа −5, взятого по модулю |
101 |
2. |
Инвертируем все разряды числа, получая таким образом обратный код |
010 |
3. |
Добавим к результату 1 и допишем знаковый единичный разряд |
1011 |
Для обратного преобразования используется тот же алгоритм.
1. |
Дополнительный код числа −5 |
1011 |
2. |
Инвертируем все разряды числа, получая таким образом обратный код |
100 |
3. |
Добавим к результату 1 |
0101 |
4. |
Проверим результат, сложив с дополнительным кодом (пятый разряд суммы отбрасывается) |
0101 + 1011 = 10000 |
Тот же принцип можно использовать и в компьютерном представлении десятичных чисел: для каждого разряда цифра X заменяется на 9−X, и к получившемуся числу добавляется 1. Например, при использовании четырёхзначных чисел −0081 заменяется на 9919 (9919+0081=0000, пятый разряд выбрасывается).