Конспекты лекций по цифровой электронике. Насыров И.А. - 6 стр.

UptoLike

Составители: 

11
Пример 1.6. Вычесть из числа A
10
= -21 число B
10
= -14, используя дополнительный
код.
Решение:
Знак Число
z
A
1
01011
2
~
A
= A
10
= -21 (дополнительный код),
-
z
B
1
11100
2
~
B
= B
10
= -14 (дополнительный код),
1 01011
2
~
A
(дополнительный код)
+
0
01110 B
2
(обычный код)
z
S
1
11001
2
~
S
= S
10
= -7.
Сложение и вычитание двоичных чисел с применением дополнительного кода
выполняются проще и быстрее, хотя преобразование чисел в дополнительный код
несколько сложнее, чем в обратный.
Выполнение операций умножения-деления над двоичными числами. Для
выполнения умножения и деления двоичных чисел используются различные методы,
наиболее употребительные из которых описаны ниже. Умножение или деление
двоичного
числа на 2
k
= 2, 4, 8, 16 и т. д. производится путем сдвига значащих цифр
числа соответственно влево или вправо на k = 1, 2, 3, 4 и т. д. разрядов.
Перемножение двоичных чисел чаще всего выполняется с помощью метода
умножения со старших разрядов. При этом множитель В
2
предварительно сдвигается
влево на n
А
разрядов, где n
А
число разрядов множимого А
2
. Затем проверяется
значение младшего разряда множимого а
0
. Если а
0
= 1, то первое частичное
произведение R
1
образуется путем арифметического сложения А и
A
n
B 2
(множитель, сдвинутый на n
А
разрядов) и последующего сдвига, суммы вправо на
один разряд. При этом крайний правый разряд суммы выходит за пределы разрядной
сетки и не учитывается. Если а
0
= 1, то частичное произведение образуется только
сдвигом вправо на один разряд с потерей крайне правого разряда. Далее проверяется
значение младшего разряда (r
0
)
1
полученного частичного произведения и образуется
второе частичное произведение R
2
суммированием R
1
и
A
n
B 2
со сдвигом суммы
вправо на один разряд (при (r
0
)
1
= 0). Аналогичная процедура получения частичных
произведений повторяется n
B
раз, где n
B
число значащих разрядов множителя.
Последнее частичное произведение является результатом умножения
B
n
RS
=
2
.
Таким образом, умножение двоичных чисел производится путем
последовательного выполнения операций сложения и сдвига. Поэтому умножение
требует существенно большего времени работы цифрового устройства, чем сложение
и вычитание.
Для деления двоичных чисел в цифровых системах чаще всего используется
метод деления с восстановлением. Если делимое A
2
больше делителя B
2
, то
предварительно производится масштабирование делимого А
2
путем его сдвига вправо
на l разрядов, чтобы получить
22
BA <
. Затем сдвигом
2
A
влево на один разряд
образуют число
2
2A
и выполняют вычитание
)2(
22
BA
. Если получаемый в
результате промежуточный остаток
)2(
221
BAR
=
имеет отрицательный знак
12
(
1
R
z =1), то старший разряд частного s
-1
= 0, если положительный знак (
1
R
z = 0), то
s
-1
= 1. При s
-1
= 1 остаток R
1
удваивается сдвигом влево, при s
-1
= 0 вместо остатка
используется число
2
2A
, которое также удваивается. Из полученного значения 2R
1
или
2
4A
снова вычитается В
2
. Если результат R
2
отрицательный, то следующий
разряд частного s
-2
= 0, если положительный, то s
-2
= 1. Вычитание выполняется c
помощью одного из описанных выше методов. Для получения частного
2
S
с
точностью до k-гo знака данная процедура повторяется k раз. При этом анализируется
знак каждого промежуточного остатка
i
R
z и следующий остаток определяется как
разность
)2(
21
BXR
ii
+
, где X
i
= R
i
при
0
=
i
R
z
, или X
i
= 2R
i-1
при
1=
i
R
z
, где
i = 0, 1, …, k, X
0
= 2A
2
. В результате получается частное от деления A
2
на B
2
в виде
правильной дроби S
2
= 0, s
-1
, s
-2
, …, s
-k
и остаток от деления
k
k
RP 2
2
=
. Значения
частного S
2
и остатка P
2
образуются в результате восстановления масштаба с
помощью сдвига
2
S
и
2
P
влево на l разрядов.
Таким образом, деление чисел выполняется путем последовательного
выполнения операции вычитания и сдвига. Знак результата при умножении и делении
получается суммирование знаковых разрядов без учета переноса, получающегося при
z
A
= z
B
= 1.
Пример 1.7. Умножить число A
10
= 13 на число B
10
= 11.
Решение:
1101 A
2
= A
10
= 13,
× n
A
= n
B
= 4,
1011 B
2
= B
10
= 11.
00001101 a
0
= 1 (суммирование и сдвиг)
+
10110000
A
n
B 2
2
10111101 сдвиг суммы
R
1
01011110 (r
0
)
1
= 0 (сдвиг)
R
2
00101111 (r
0
)
2
= 1 (суммирование и сдвиг)
+
1011000
A
n
B 2
2
11011111 сдвиг суммы
R
3
01101111 (r
0
)
3
= 1 (суммирование и сдвиг)
+
10110000
A
n
B 2
2
100011111 сдвиг суммы
R
4
10001111 S
2
= S
10
= 143.
Пример 1.6. Вычесть из числа A10 = -21 число B10 = -14, используя дополнительный      ( z R =1), то старший разряд частного s-1= 0, если положительный знак ( z R = 0), то
            код.                                                                          1                                                                                    1

Решение:                                                                              s-1= 1. При s-1= 1 остаток R1 удваивается сдвигом влево, при s-1= 0 вместо остатка
                    Знак Число                                                        используется число 2 A2′ , которое также удваивается. Из полученного значения 2R1
                                      ~
                  zA → 1 01011 ← A2 = A10 = -21 (дополнительный код),                 или 4 A2′ снова вычитается В2. Если результат R2 отрицательный, то следующий
                        -                                                             разряд частного s-2 = 0, если положительный, то s-2 = 1. Вычитание выполняется c
                                      ~ = B = -14 (дополнительный код),
                  zB → 1 11100 ← B     2    10                                        помощью одного из описанных выше методов. Для получения частного S 2′ с
                                       ~                                              точностью до k-гo знака данная процедура повторяется k раз. При этом анализируется
                         1   01011 ← A2 (дополнительный код)
                         +                                                            знак каждого промежуточного остатка          z Ri   и следующий остаток определяется как
                         0   01110 ← B2 (обычный код)
                                       ~                                              разность Ri +1 = ( 2 X i − B2 ) , где Xi = Ri при   z Ri = 0 , или Xi = 2Ri-1   при   z Ri = 1 , где
                    zS → 1   11001 ← S 2 = S10 = -7.
                                                                                      i = 0, 1, …, k, X0= 2A2. В результате получается частное от деления A2 на B2 в виде
       Сложение и вычитание двоичных чисел с применением дополнительного кода         правильной дроби S2 = 0, s-1, s-2, …, s-k и остаток от деления P2′ = Rk ⋅ 2k . Значения
выполняются проще и быстрее, хотя преобразование чисел в дополнительный код           частного S2 и остатка P2 образуются в результате восстановления масштаба с
несколько сложнее, чем в обратный.
                                                                                      помощью сдвига S 2′ и P2′ влево на l разрядов.
Выполнение операций умножения-деления над двоичными числами. Для                              Таким образом, деление чисел выполняется путем последовательного
выполнения умножения и деления двоичных чисел используются различные методы,          выполнения операции вычитания и сдвига. Знак результата при умножении и делении
наиболее употребительные из которых описаны ниже. Умножение или деление               получается суммирование знаковых разрядов без учета переноса, получающегося при
двоичного числа на 2k = 2, 4, 8, 16 и т. д. производится путем сдвига значащих цифр   zA= zB= 1.
числа соответственно влево или вправо на k = 1, 2, 3, 4 и т. д. разрядов.
       Перемножение двоичных чисел чаще всего выполняется с помощью метода            Пример 1.7. Умножить число A10= 13 на число B10= 11.
умножения со старших разрядов. При этом множитель В2 предварительно сдвигается        Решение:
влево на nА разрядов, где nА — число разрядов множимого А2. Затем проверяется                         1101 ← A2= A10= 13,
значение младшего разряда множимого а0. Если а0= 1, то первое частичное                             ×                       nA= nB= 4,
произведение R1 образуется путем арифметического сложения А и B ⋅ 2 n A                               1011 ← B2= B10= 11.
(множитель, сдвинутый на nА разрядов) и последующего сдвига, суммы вправо на
один разряд. При этом крайний правый разряд суммы выходит за пределы разрядной                              00001101 → a0= 1 (суммирование и сдвиг)
сетки и не учитывается. Если а0 = 1, то частичное произведение образуется только                        +
сдвигом вправо на один разряд с потерей крайне правого разряда. Далее проверяется                           10110000 ← B2 ⋅ 2n A
значение младшего разряда (r0)1 полученного частичного произведения и образуется
второе частичное произведение R2 суммированием R1 и B ⋅ 2 n A со сдвигом суммы                           10111101 → сдвиг суммы
вправо на один разряд (при (r0)1 = 0). Аналогичная процедура получения частичных                    R1 → 01011110 → (r0)1= 0 (сдвиг)
произведений повторяется nB раз, где nB – число значащих разрядов множителя.                        R2 → 00101111 → (r0)2= 1 (суммирование и сдвиг)
                                                                                                       +
Последнее частичное произведение является результатом умножения S 2 = Rn .
                                                                           B                             1011000 ← B2 ⋅ 2n A
       Таким образом, умножение двоичных чисел производится путем
последовательного выполнения операций сложения и сдвига. Поэтому умножение                               11011111 → сдвиг суммы
требует существенно большего времени работы цифрового устройства, чем сложение                      R3 → 01101111 → (r0)3= 1 (суммирование и сдвиг)
и вычитание.                                                                                           +
       Для деления двоичных чисел в цифровых системах чаще всего используется                            10110000 ← B2 ⋅ 2n A
метод деления с восстановлением. Если делимое A2 больше делителя B2, то
предварительно производится масштабирование делимого А2 путем его сдвига вправо                          100011111 → сдвиг суммы
на l разрядов, чтобы получить A2′ < B2 . Затем сдвигом A2′ влево на один разряд                     R4 → 10001111 → S2= S10= 143.
образуют число 2A2′ и выполняют вычитание (2 A2′ − B2 ) . Если получаемый в
результате промежуточный остаток R1 = (2 A2′ − B2 ) имеет отрицательный знак
                                        11                                                                                          12