Операции над числами в машинных кодах
Операции с фиксированной запятой.
Сложение чисел.
В вычислительной технике, благодаря машинным кодам, операция вычитания заменяется операцией сложения с числом обратного знака.
Сложение в обратном коде.
Пусть даны два числа А и В. Надо найти их сумму.
Выполним сложение в обратном коде. При этом биты знака участвуют в сложении наравне со значащими разрядами
Ответ:
Теперь сложим два других числа
При сложение в обратном коде единица переноса из старшего ( знакового ) бита добавляется в младший разряд результата - имеет место, так называемый, циклический перенос. Результат сложения , а ответ С = - 0,1111
Сложение в дополнительном коде.
Выполним сложение тех же чисел
Теперь возьмём другие числа
В дополнительном коде единица переноса из знакового бита отбрасывается. Тогда , а ответ равен С = - 0,1111.
При сложении обязательно выравнивание разрядов слагаемых нулями (не кодов!). Для отрицательных чисел эти выравнивающие нули превращаются в единицы при инвертировании. Знаки чисел (крайние левые биты кодов) обязательно находятся один под другим.
Аналогично складывают и целые числа. Например, сложить в разрядной сетке 1 байт два числа С = А + В, где А= + 9 и В = - 7 . Разместим их в фиксированной разрядной сетке – в восьми битах
[А]пр = 0 0 0 0 1 0 0 1
[B]пр = 1 0 0 0 0 1 1 1
[A]доп = 0 0 0 0 1 0 0 1
[В]доп = 1 1 1 1 1 0 0 1
[С]доп = 0 0 0 0 0 0 1 0
[С]пр = 0 0 0 0 0 0 1 0
В результате сложения получилось положительное число, поэтому других преобразований ответ не требует.
Дата добавления: 2016-01-18; просмотров: 2807;