Составители:
47
Суммирование целых двоичных чисел без знака выполняется по
тем же правилам, что и десятичное сложение, за исключением того,
что перенос в следующий разряд производится после того, как сумма
достигает 2 (1 + 1), а не 10. Рассмотрим несколько примеров
сложения.
Пример 2.1. Сумма меньше 65536 (2
16
):
1 111 1 11 Переносы
0000 0110 0011 1010 1594
0100 0100 1001 1011 17563
0100 1010 1101 0101 19157
Пример 2.2. Сумма равна 65536:
1 111 Переносы
1000 0000 0000 0000 32768
1000 0000 0000 0000 32768
1 0000 0000 0000 0000 0 ?
Здесь в ответе должно получиться число 32768 + 32768 = 65536, но
поскольку разрядность слова составляет лишь 16 бит, то в нем сохраняется
часть результата, т. е. 0. В данном и следующем примерах при сложении
появляется единица переноса из старшего разряда, которая оказывается за
пределами представления числа (в несуществующем 17 разряде). Для
сохранения этой единицы в ЭВМ используется специальный 1-битовый регистр
переноса - С (см. параграф 2.1). Пользователь ЭВМ должен так составлять
программы, чтобы при выполнении следующего за суммированием действия
нужным образом учитывалось (использовалось или игнорировалось)
содержимое регистра переноса.
Пример 2.3. Сумма больше чем 65536:
1 1111 1111 1111 111 111 Переносы
1111 1111 1111 1111 65535
0111 1111 1111 1111 32767
1 0111 1111 1111 1110 32766 ?
Здесь из-за ограниченной разрядности слова вместо 65535 + 32767 =
98302 опять (как и в примере 2.2) получен результат, уменьшенный на 65536
(2
16
), и появляется перенос из старшего разряда.
В базовой ЭВМ для реализации рассмотренной операции
используется команда ADD (СЛОЖЕНИЕ). Пример программы
сложения двух чисел был рассмотрен в параграфах 2.1 и 2.2.
Целые двоичные положительные и отрицательные числа. Чтобы
отличить отрицательные числа от положительных, в любых
рассмотренных выше системах счисления можно использовать либо
знак (такое представление чисел называется их прямым кодом), либо
Страницы
- « первая
- ‹ предыдущая
- …
- 48
- 49
- 50
- 51
- 52
- …
- следующая ›
- последняя »
