Сложение и вычитание двоичных чисел

Сложение чисел, а также вычитание чисел в обратном или дополнительном кодах выполняется с использованием обычного правила арифметического сложения многоразрядных чисел. Это правило распространяется и на знаковые разряды чисел. Различие же обратного и дополнительного кодов связано с тем, что потом делают с единицей переноса из старшего разряда, изображающего знак числа. При сложении чисел в обратном коде эту единицу надо прибавить к младшему разряду результата, а в дополнительном коде единица переноса из старшего разряда игнорируется. Это очевидно, если вспомнить, что дополнительный код из обратного получается как раз прибавлением единицы. Рассмотрим пример: сложить числа +18 и –7 (табл. 7.4).

Таблица сложения чисел в прямом и дополнительном кодах

Таблица 7. 4

Итак, как в обратном, так и в дополнительном кодах результаты сложения совпали и равны 10112= 1110.

Умножение и деление двоичных чисел в ЭВМ производится в прямом коде, а их знаки используются лишь для определения знака результата. Также как и в математике, умножение и деление сводится к операциям сдвигов и сложений(с учётом знака числа).

Полученные коды мантиссы и порядка для каждого числа помещаются в ячейки памяти ЭВМ. Для каждой цифры, входящей в код, в ячейке памяти отводится своё отдельное место. Одна ячейка памяти состоит из 8 бит, т.е. 1 байта. В современных компьютерах 2 байта выделяются для одного машинного слова В последних моделях ПК обработка информации ведётся двойными словами, содержащими 4 байта. Числа с фиксированной запятой имеют формат одного слова, а числа с плавающей запятой - формат двойного слова..

Пример: Дано число с плавающей запятой величиной –0,625×108. Нужно преобразовать его в машинный код и заполнить 32-разрядную ячейку памяти. Мантисса числа 0,62510 = 0,1012. Поскольку порядок чисел может быть как положительным, так и отрицательным, то машинный порядок смещается относительно естественного таким образом, чтобы весь диапазон машинных порядков изменялся от 0 до максимума, определяемого количеством разрядов, выделяемых для размещения чисел порядка. Обычно в 32-разрядной ячейке цифры порядка занимают 7 разрядов старшего байта, а восьмой разряд используется для фиксации знака числа. Семь двоичных разрядов позволяют разместить диапазон десятичных разрядов от –64 до +63. Если обозначить машинный порядок через R, а естественный через r, то связь между ними будет такая: R10 = r10+6410. Для двоичной системы счисления R2 = r2 + 10000002. В нашем примере порядок r равен 810 = 10002, следовательно R2 = 1001000. В двоичной системе исходное число выглядит так: –0,101х101000. Запись этого числа в 32-разрядной ячейке представлена в табл. 7.5:

Сводная таблица переводов целых чисел

Таблица 7. 5