ВУЗ:
Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »