Изменения

Перейти к: навигация, поиск

Реализация вычитания сумматором

103 байта убрано, 00:39, 10 декабря 2011
Нет описания правки
Что бы реализовать вычитание [[Каскадный сумматор|каскадным]] или [[Двоичный каскадный сумматор|двоичным каскадным сумматором]], нужно сложить на нём уменьшаемое с противоположным по знаку вычитаемым, так же как и при вычитании обычных чисел. Тогда полученная сумма будет разностью данных чисел.
<math> \mathbf x - y = x +(-y)</math> 
Инверсия знака записанного в двоичном виде числа происходит точно так же, как и в [[Представление целых чисел: прямой код, код со сдвигом, дополнительный код#Дополнительный код|дополнительном коде]].<br/>
Данное число нужно инвертировать и прибавить к нему единицу.
<math> \mathbf -y = (\lnot y) + 1 </math>
Например число <math> \mathbf - 19</math> будет записано как <math> \mathbf 01101 </math>, так как <math> \mathbf 19_\mathrm{10} = 10011_\mathrm{2}</math>, а <math> \mathbf (\lnot 10011) + 1 = 01100 + 1 = 01101 </math>
![[Файл:XOR_logic_element.png|100px|XOR]]
| логический [[Реализация булевой функции схемой из функциональных элементов|функциональный элемент]] '''XOR'''<br />'''A''' и '''B''' входы и '''Y''' выход.
!<math> \mathbf A \oplus B = Y</math><br /><math> \mathbf 0 \oplus 0 = 0</math><br /><math> \mathbf 0 \oplus 1 = 1</math><br /><math> \mathbf 1 \oplus 0 = 1</math><br /><math> \mathbf 1 \oplus 1 = 0</math>
|-
!<math> \mathbf {\color{Goldenrod}\mbox{A}_\mathrm{0} , \mbox{A}_\mathrm{1} ... \mbox{A}_\mathrm{N}} </math>
!<math> \mathbf {\color{Green}\mbox{S}_\mathrm{0} , \mbox{S}_\mathrm{1} ... \mbox{S}_\mathrm{N}} </math>
|'''0'''-ой '''1'''-ый ... '''n'''-ный биты ответа.
!<math> \mathbf S = A \pm B</math>
|-
!<math> \mathbf {\color{Blue}T} </math>
|бит отвечающий за знак операции<br />'''T''' подключён к '''C<small>0</small>''' 0-вому биту переноса в сумматоре
!0 если <math> \mathbf S = A + B</math><br />1 если <math> \mathbf S = A - B</math><br />
|-
!<math> \mathbf {\color{OliveGreen}0 , 1 ... N} </math>
120
правок

Навигация