Для указания знака числа используется старший (знаковый) разряд. У положительных чисел в этом разряде устанавливают значение, равное нулю, у отрицательных чисел равное единице

Методы вычитания

Для выполнения операций вычитания, умножения и деления в цифровой технике используются сумматоры. При вычитании знак вычитаемого изменяется, и результат складывается с уменьшаемым двоичным числом.

Вычитатель

а) В инверсном коде. Изменение знака получается инверсией всех бит разрядов вычитаемого. Если при сложении появляется единица в разряде, более старшем, чем разрядность вычитателя, то она прибавляется к младшему разряду результата.

Пример: вычесть 7 из 9, результат представить в двоичном коде.

Двоичное число Десятичное число Комментарий:
     
  – 7 Инверсия кода 01112 = 710
1 0001   Сумма
    Перенос 1 из старшего разряда
    Результат: сложение суммы и переноса

Недостаток метода: представление ноля двумя способами, так как инверсия 0...00 равна 1...11 и сумма двух разных по знаку, но равных по значению чисел дает 1...11.

Пример: сложить 4 и – 4, результат представить в двоичном коде.

Двоичное число Десятичное число Комментарий:
     
  – 4 Инверсия кода 01002 = 410
    Сумма

б) В дополнительном коде. Изменение знака получается инверсией всех бит разрядов числа, расширенного до полного формата и добавлением к результату 1 в младшем разряде. Единица в разряде, более старшем, чем разрядность вычитателя отбрасывается.

Вычитание в дополнительном коде можно применять не только в двоичной системе счисления. Например, стрелочные часы показывают 9 часов, а их надо установить на 1 час. Для этого часовую стрелку можно вращать против ее движения на 8 делений, что эквивалентно вычитанию, или по ходу на 4 деления, выполняя операцию сложения и получив тот же результат. В данном случае число 4 является дополнением к 8, а их сумма равна 12. Это справедливо только в случае, если нет переноса в следующий разряд (он отбрасывается).

Дополнение и вычитаемое число дополняют друг друга при n – разрядном представлении до M n, где M – основание системы счисления.

При изменении знака значения всех бит разрядов двоичного числа расширенного до полного формата (в незаполненные старшие разряды записаны нули) заменяются дополнением до единицы (инвертируются), и к результату добавляется 1 в младшем разряде. Единица в разряде, более старшем, чем разрядность вычитающего устройства отбрасывается.

Исключение единицы старшего разряда объясняется тем, что разрядность цифровых устройств ограничена и выходящие за эти ограничения по величине числа утрачиваются.

Пример: изменить знак числа 4 в двоичном коде

(табл.).

Последовательность операции изменения знака

Двоичное число Десятичное число Комментарий
знак модуль знак модуль
    +   Положительное число
      Инверсия кода
    +   Единица младшего разряда
      Сумма инверсии и 1 младшего разряда
      Отрицательное число

Дополнение двоичного числа равно его отрицательному значению.

Необходимость добавления единицы младшего разряда объясняется тем, что обратный код выражается зависимостью:

 
 


(3)

где: А ПР – прямой код.

Например, 210 = 0102, 2 n -1 = 1112. A ОБР = 111 – 010 = 101.

Дополнительный код, по определению, равен:

 
 


(4)

Согласно (3, 4):

Пример: сложить четырехразрядные числа: 00012 =110 и код 11112:

11112 – 110 Из примера следует, что двоичный код 11112 соответствует – 110, т.к. сумма равна 0. Тогда меньшее на 1 значение 11102 является представлением – 210 и т.д.
00012 +110
00002 010

Пример: вычислить: 7 +(– 4), результат представить в четырехразрядном двоичном коде.

Пятый разряд использовать как знаковый.

Ответ в табл. 5.

Последовательность операции вычитания

Двоичное число Десятичное число Комментарий
знак модуль знак модуль
    +   Первое слагаемое
    +   Вычитаемое в полном формате
      Инверсия вычитаемого
    +   Единица младшего разряда
      Сумма инверсии и 1 младшего разряда
      Второе слагаемое в дополнительном коде
    +   Сумма первого и второго слагаемых
    +   Результат вычитания

Если при добавлении дополнения в n – разрядном представлении отсутствует перенос в n +1 разряд, то результат является отрицательным числом.

Пример: числа в двоичном коде складываются и вычитаются аналогично методу расчета «в столбик» с учетом переносов и займов.

Двоичный код: Сложение: Двоичный код: Вычитание:
A 3 A 2 A 1 A 0:   A 3 A 2 A 1 A 0:  
B 3 B 2 B 1 B 0:   B 3 B 2 B 1 B 0:  
S 3 S 2 S 1 S 0:   D 3 D 2 D 1 D 0:  

Где: A, B – четырех разрядные переменные, S 3 …S 0 – результат сложения; D 3 …D 0 – результат вычитания.

Пример: вычислить 4 +(–7), у полученной разности изменить знак, результат представить в четырехразрядном двоичном коде. Пятый разряд использовать как знаковый. Ответ в табл. 6.

Последовательность операции вычитания

Двоичное число Десятичное число Комментарий
знак модуль знак модуль
    +   Первое слагаемое
    +   Вычитаемое в полном формате
      Инверсия вычитаемого
    +   Единица младшего разряда
      Сумма инверсии и 1 младшего разряда
      Второе слагаемое в дополнительном коде
    +   Сумма, переноса нет – число отрицательное
      Результат вычитания
    +   Инверсия результата
    +   Единица младшего разряда
    +   Сумма инверсии и 1 младшего разряда
    +   Модуль результата вычитания

Пример: представить значения + 0 и – 0 в двоичном коде. Ответ в табл. 7.

Последовательность операции вычитания Таблица 7

Двоичное число Десятичное число Комментарий
  + 0  
    Инверсия кода 00002 = 010
    Единица младшего разряда
1 0000   1 отбрасывается
  – 0 Результат

При выполнении операций сложения и вычитания возможны ошибки, если количество разрядов результата вычислений превышает разрядность вычислительных устройств. Например, сложение двух больших положительных или больших отрицательных чисел.

Признаком ошибки, в данном случае, является не совпадение знаков переменных со знаком результата вычислений. Этот факт контролируется специальным устройством.

Ограничения представления чисел: без указания знака от 0 до 2 n –1, где n – число разрядов.

Восемь разрядов двоичного числа соответствует 0…25510. Шестнадцать разрядов: от 0 до 6553510 или 0 – FFFF 16.

Числа со знаком ограничены диапазоном: от – 2 n -1 до +2 n -1 –1, где n – число разрядов. Восемь разрядов двоичного числа соответствуют: от –12810 до +12710. Шестнадцать разрядов: от –32768 до +3276710 или 8000…7 FFF 16.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: