ВУЗ:
бинации (complement) называется такая комбинация, которая получается в результате изменения всех нулей в исходном зна-
чении на единицы, а всех единиц на нули. Например, двоичные комбинации 0110 и 1001 являются дополнениями друг другу.
Рис. 1.12. Представление числа –6 в четырехразрядном
дополнительном коде
Рассмотрим пример преобразования значений этого кода в десятичное представление.
Пример. Определить десятичное значение комбинации 1010.
Прежде всего, отмечаем, что это значение является отрицательным, так как исходная комбинация содержит единицу в
знаковом бите. Затем исходная комбинация преобразуется в комбинацию 0110, которая представляет собой двоичное число
6. Теперь можно сделать окончательное заключение, что исходная двойная комбинация представляет число –6.
Сложение в двоичном дополнительном коде. Для сложения чисел в двоичном дополнительном коде применяется та-
кой же алгоритм, как для двоичного сложения, только в этом случае все коды, включая результат операции, будут иметь
одинаковую длину. Это означает, что, если в результате сложения появляется дополнительный бит с левого края, он будет
отсечен. Именно поэтому 0101 и 0010 в сумме дают 0111, а сумма 0111 и 1011 равна 0010 (0111 + 1011 = 10010, которая усе-
кается до 0010).
На рис. 1.13 представлены примеры сложения чисел в двоичном дополнительном
коде. Обратите внимание, что за счет преобразования исходных данных в двоичные до-
полнительные коды можно вычислить результат, как для сложения и вычитания, с по-
мощью одного и того же алгоритма сложения. Таким образом, основным преимущест-
вом двоичного дополнительного кода является то, что операция сложения для любых
целых чисел со знаком осуществляется с помощью одного и того же алгоритма.
Поэтому при использовании двоичного дополнительного кода необходимо реали-
зовать электронные схемы только для осуществления операций сложения и отрицания
(операция вычитания 7 – 5 аналогична операции сложения 7 + (–5)). Этого будет доста-
точно для выполнения как операций сложения, так и вычитания. Электронные схемы
сложения и отрицания представлены в приложении Б.
Ошибка переполнения. Одной из проблем, которые существуют в любом пред-
ставлении в двоичном дополнительном коде, является ограничение на размер чисел,
представимых данным количеством битов. Например, если мы используем 4-битовый
двоичный дополнительный код, то у числа 9 не будет соответствующей записи. Это означает, что мы не получим правильно-
го ответа, выполнив операцию сложения 5 + 4. На самом деле мы получим ответ – 7. Такая ошибка называется переполнени-
ем (overflow), она возникает тогда, когда нужно сохранить число, не попадающее в диапазон чисел, которые могут быть
представлены в двоичном дополнительном коде.
Переполнение может возникнуть, когда нужно сложить два положительных или два отрицательных числа. В обоих слу-
чаях можно проверить, есть ли ошибка, посмотрев на знаковый разряд полученного результата, т.е. переполнение возникло,
если сумма двух положительных чисел имеет код отрицательного числа или сумма двух отрицательных чисел имеет код по-
ложительного числа.
В настоящее время для хранения чисел в двоичном дополнительном коде обычно применяются битовые комбинации
длиной 32 бита, что позволяет без возникновения переполнения обрабатывать числа от –2 147 483 648 до 2 147 483 647. Если
же требуется обработка чисел, превышающих это значение, можно использовать более длинные битовые комбинации или же
просто изменить применяемую единицу измерения (например, километры, а не метры).
Двоичная нотация с избытком*. Другой способ представления целочисленных значений называется двоичной нота-
цией с избытком (excess notation). В отличие от двоичного дополнительного кода в этой нотации отрицательные числа пред-
ставляются комбинациями со знаковым битом, равным 0, а положительные числа – комбинациями со знаковым битом, рав-
ным 1 (см. рис. 1.14).
Таблица кодов, изображенная на рис. 1.14, б, называется двоичной нотацией с избытком восемь. Для того чтобы понять,
почему это так, сначала переведем коды из таблицы в десятичную систему счисления,как обычный двоичный код, и сравним
полученные значения со значениями в таблице.
Рис. 1.13. Сложение чисел
в двоичном дополнительном коде
Запись цифры 6 в
четырехразрядном двоичном
дополнительном коде
Запись цифры – 6 в
четырехразрядном двоичном
дополнительном коде
Копирование битов
справа налево до тех
пор, пока не будет
скопирована единица
Копирование
дополнительных
значений для
оставшихся бит
1 1 0 0
0 1 1 0
Страницы
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- …
- следующая ›
- последняя »