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

UptoLike

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

13
Пример 1.8. Разделить A
2
= 0,0111 на B
2
= 0,1100.
Решение: Так как A
2
< B
2
, то масштабирование в этом случае не требуется.
X
0
= 2A
2
0,1110
-
B
2
0,1100
R
1
=(2A
2
- B
2
) + 0,0010 > 0, s
-1
= 1,
X
1
= 2R
1
0,0100
-
B
2
0,1100
R
2
=(2R
1
- B
2
) - 0,1000 < 0, s
-2
= 0,
X
2
= 4R
1
0,1000
-
B
2
0,1100
R
3
=(4R
1
- B
2
) - 0,0100 < 0, s
-3
= 0,
X
3
=8R
1
1,0000
-
B
2
0,1100
R
4
=(8R
1
- B
2
) 0,0100 > 0, s
-4
= 1.
Получаем частное от деления S
2
= 0,1001 и остаток P
2
= 0,012
-4
= 0,000001.
Описанные выше методы выполнения арифметических операций,
рассмотренные для чисел с фиксированной запятой, применяются и для операций над
числами с плавающей запятой. Однако при этом требуется еще выполнение
определенных операций с порядками чисел. При сложении и вычитании чисел с
плавающей запятой предварительно производится выравнивание порядков p
A
и p
B
обоих чисел путем сдвига мантиссы одного из них, например B
2
, на (p
A
- p
B
) разрядов
вправо, если p
A
> p
B
, либо влево, если p
A
< p
B
. Порядок результатов при этом будет
p
S
=p
A
. При умножении или делении чисел с плавающей запятой порядок результата
равен соответственно сумме или разности порядков: p
S
= p
A
± p
B
.
Выполнение арифметических операций над двоично-десятичными числами. Как
было указано в параграфе 1.2, для выполнения арифметических операций над
двоично-десятичными числами наиболее удобно использовать самодополнящие коды
(табл. 1.3). Рассмотрим операции сложения-вычитания для чисел, записанных в
двоично-десятичном коде.
При использовании самодополняющих двоично-десятичных кодов вычитание
заменяется сложением аналогично тому, как это производится для двоичных чисел в
случае применения обратного кода. При этом все отрицательные числа
представляются в обратном самодополняющемся коде. При выполнении вычитания
вычитаемое преобразуется в обратный код и производится его суммирование с
уменьшаемым. В случае образования переноса в старшем (знаковом) разряде
выполняется его прибавление к младшему разряду младшей тетрады (циклический
перенос). Затем производится дополнительная операциякоррекция кода в каждой
из тетрад.
Рассмотрим выполнения операций сложения-вычитания с применением кода «с
избытком 3». Исходные положительные числа представляются в коде «с избытком
14
3», а отрицательныев обратном коде «с избытком 3». При сложении суммируются
соответствующие тетрады двоичных разрядов. При вычитании сначала вычитаемое
переводится в обратный код, а затем производится суммирование. Если при
суммировании в тетраде не образуется перенос из старшего разряда, то сумма,
полученная в данной тетраде, превышает на 3 действительное значение результата в
коде «с избытком 3». Поэтому для коррекции значения суммы, полученной в этой
тетраде, необходимо вычесть 3, что эквивалентно прибавлению 1101 (3 в
дополнительном коде). Если в тетраде образуется перенос, т.е. десятичное число 16,
то 10 поступает в виде двоичной 1 в младший разряд следующей тетрады, а 6
необходимо добавить к сумме, полученной в данной тетраде. Но так как для
коррекции кода необходимо вычесть 3, то достаточно добавить (6-3) = 3, т. е. 0011.
Переносы, возникающие при коррекции, не учитываются. Знаковые разряды чисел
также суммируются. Перенос, образуемый в знаковом разряде, циклически
переносится в младший разряд младшей тетрады. Коррекция кода требуется и при
использовании других двоично-десятичных кодов. Поэтому выполнение
арифметических операций при двоично-десятичном
представлении сложнее, чем при
двоичном. Однако при обработке большого количества данных этот недостаток
компенсируется простотой перевода чисел в двоично-десятичную форму.
Пример 1.9. Сложить число А
10
= 34 с числом В
10
= 19, используя двоично-десятичное
кодирование.
Решение:
знак тетрада 1 тетрада 0
z
A
0 0110 0111
10/2
A
= A
10
= 34,
+
z
B
0 0100 1100
10/2
B
= B
10
= 19,
0 1010 0011
+
1
0 1011 0011
+
1101 0011
коррекция
z
S
0
1000 0110
10/2
S
= S
10
= 53.
1 Перенос не учитывается.
Пример 1.8. Разделить A2= 0,0111 на B2= 0,1100.                                      3», а отрицательные – в обратном коде «с избытком 3». При сложении суммируются
Решение: Так как A2< B2, то масштабирование в этом случае не требуется.              соответствующие тетрады двоичных разрядов. При вычитании сначала вычитаемое
                                                                                     переводится в обратный код, а затем производится суммирование. Если при
              X0= 2A2 → 0,1110                                                       суммировании в тетраде не образуется перенос из старшего разряда, то сумма,
                      -                                                              полученная в данной тетраде, превышает на 3 действительное значение результата в
                   B2 → 0,1100                                                       коде «с избытком 3». Поэтому для коррекции значения суммы, полученной в этой
         R1=(2A2- B2) → + 0,0010 > 0, s-1= 1,                                        тетраде, необходимо вычесть 3, что эквивалентно прибавлению 1101 (3 в
              X1= 2R1 → 0,0100                                                       дополнительном коде). Если в тетраде образуется перенос, т.е. десятичное число 16,
                       -                                                             то 10 поступает в виде двоичной 1 в младший разряд следующей тетрады, а 6
                    B2 → 0,1100                                                      необходимо добавить к сумме, полученной в данной тетраде. Но так как для
                                                                                     коррекции кода необходимо вычесть 3, то достаточно добавить (6-3) = 3, т. е. 0011.
         R2=(2R1- B2) → - 0,1000 < 0, s-2= 0,                                        Переносы, возникающие при коррекции, не учитываются. Знаковые разряды чисел
              X2= 4R1 → 0,1000                                                       также суммируются. Перенос, образуемый в знаковом разряде, циклически
                       -                                                             переносится в младший разряд младшей тетрады. Коррекция кода требуется и при
                    B2 → 0,1100                                                      использовании других двоично-десятичных кодов. Поэтому выполнение
                                                                                     арифметических операций при двоично-десятичном представлении сложнее, чем при
         R3=(4R1- B2) → - 0,0100 < 0, s-3= 0,
                                                                                     двоичном. Однако при обработке большого количества данных этот недостаток
              X3=8R1 → 1,0000
                                                                                     компенсируется простотой перевода чисел в двоично-десятичную форму.
                       -
                    B2 → 0,1100
         R4=(8R1- B2) →   0,0100 > 0, s-4= 1.
Получаем частное от деления S2= 0,1001 и остаток P2= 0,01⋅2-4= 0,000001.             Пример 1.9. Сложить число А10= 34 с числом В10= 19, используя двоично-десятичное
       Описанные выше методы выполнения арифметических операций,                                кодирование.
рассмотренные для чисел с фиксированной запятой, применяются и для операций над
числами с плавающей запятой. Однако при этом требуется еще выполнение                Решение:
определенных операций с порядками чисел. При сложении и вычитании чисел с                                     знак   тетрада 1    тетрада 0
плавающей запятой предварительно производится выравнивание порядков pA и pB                      zA   →       0      0110         0111         ←     A2′ /10 = A10= 34,
обоих чисел путем сдвига мантиссы одного из них, например B2, на (pA- pB) разрядов                        +
вправо, если pA> pB, либо влево, если pA< pB. Порядок результатов при этом будет                 zB   →       0      0100         1100         ←     B2′ /10 = B10= 19,
pS=pA. При умножении или делении чисел с плавающей запятой порядок результата
равен соответственно сумме или разности порядков: pS= pA± pB.                                                 0      1010         0011
                                                                                                          +
Выполнение арифметических операций над двоично-десятичными числами. Как                                                 1
было указано в параграфе 1.2, для выполнения арифметических операций над                                      0      1011         0011
двоично-десятичными числами наиболее удобно использовать самодополнящие коды                              +
(табл. 1.3). Рассмотрим операции сложения-вычитания для чисел, записанных в                                          1101         0011         ←     коррекция
двоично-десятичном коде.                                                                                      0                                        S 2′ /10 = S10= 53.
                                                                                                 zS   →              1000         0110         ←
       При использовании самодополняющих двоично-десятичных кодов вычитание
заменяется сложением аналогично тому, как это производится для двоичных чисел в
случае применения обратного кода. При этом все отрицательные числа                                            1      Перенос не учитывается.
представляются в обратном самодополняющемся коде. При выполнении вычитания
вычитаемое преобразуется в обратный код и производится его суммирование с
уменьшаемым. В случае образования переноса в старшем (знаковом) разряде
выполняется его прибавление к младшему разряду младшей тетрады (циклический
перенос). Затем производится дополнительная операция — коррекция кода в каждой
из тетрад.
Рассмотрим выполнения операций сложения-вычитания с применением кода «с
избытком 3». Исходные положительные числа представляются в коде «с избытком
                                       13                                                                                    14