Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Сложение чисел.
В вычислительной технике, благодаря машинным кодам, операция вычитания заменяется операцией сложения с числом обратного знака.
Сложение в обратном коде. Пусть даны два числа А и В. Надо найти их сумму. Выполним сложение в обратном коде. При этом биты знака участвуют в сложении наравне со значащими разрядами Ответ:
Теперь сложим два других числа При сложение в обратном коде единица переноса из старшего (знакового) бита добавляется в младший разряд результата - имеет место, так называемый, циклический перенос. Результат сложения , а ответ С = - 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 В результате сложения получилось положительное число, поэтому других преобразований ответ не требует.
|