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