- •Введение
- •Задание 1 Представление целых чисел и чисел с плавающей запятой в различных форматах
- •1.1. Представление чисел в двоично-кодированной форме
- •1.2. Представление целых чисел в форме с фиксированной запятой
- •1.3. Особенности ПредставлениЯ чисел
- •1.4. Представление чисел с плавающей запятой
- •1.5. Представление чисел с плавающей запятой
- •1.6. Представление чисел с плавающей запятой
- •1.8. Определение значения числа с плавающей запятой по его представлению в формате ф2
- •1.9. Определение значения числа с Плавающей запятой по его представлению в формате ф3
- •1.7. Определение значения числа с плавающей запятой по его представлению в формате ф1
- •Задание 2 Сложение целых чисел
- •Пример выполнения задания
- •Задание 3 Вычитание целых чисел
- •Пример выполнения задания
- •Задание 4 Умножение целых чисел
- •Умножение в дополнительных кодах с применением коррекции
- •Умножение в дополнительных кодах без коррекции
- •Задание 5 Деление целых чисел
- •Приложение 1
- •Приложение 2
- •Приложение 3
- •Содержание
- •Кафедра вычислительной техники
- •Арифметические основы эвм
Задание 3 Вычитание целых чисел
Вычитание целых знаковых чисел производится в байтном формате.
Выполнить те же пункты, что и в задании 2, применительно к операции вычитания, в пунктах 2 и 3 переполнение имеет место при разных знаках операндов.
Варианты заданий приведены в табл.3 приложения 1.
Пример выполнения задания
Операция двоичного вычитания реализуется поразрядно, начиная с младших разрядов с учетом возникающих межразрядных заемов.
В каждом разряде вычитание реализуется в соответствии со следующей таблицей:
-
ai – значение разряда уменьшаемого,
bi – значение разряда вычитаемого,
zi-1 – значение заема из i-го разряда в (i-1)-й предыдущий младший разряд,
r i – значение разности в i-ом разряде,
zi – значение заема из предыдущего (i+1)-го старшего разряда в i-й разряд.
3.1. А = 67, В = 51
ai
bi
zi-1
ri
zi
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
А = (67)10 = (1000011)2
В = (51)10 = (110011)2
1) А > 0, B > 0
ЗИ
БзИ
АПК= _ 0.1 0 0 0 0 1 1 _ 67 _ 67
ВПК= 0.0 1 1 0 0 1 1 51 51
СПК= 0.0 0 1 0 0 0 0 16 16
CF = 0; SF = 0; ZF = 0; AF = 0; PF = 0; OF = 0.
2) А < 0, В > 0
ЗИ
БзИ
АДК= _ 1.0 1 1 1 1 0 1 _- 67 _189
ВПК= 0.0 1 1 0 0 1 1 +51 51
СДК= 1.0 0 0 1 0 1 0 138
СПК= 1.1 1 1 0 1 1 0 - 118
CF = 0; SF = 1; ZF = 0; AF = 0; PF = 0; OF = 0.
3) А > 0, B < 0
ЗИ
БзИ
АПК= _ 0. 1 0 0 0 0 1 1 _ 67 _ 67
ВДК= 1. 1 0 0 1 1 0 1 - 51 205
СПК= 0. 1 1 1 0 1 1 0 118 118 ?
CF = 1; SF = 0; ZF = 0; AF = 1; PF = 0; OF = 0.
Для БзИ результат неверен вследствие возникающего заема из разряда за пределами формата.
4) А < 0, B < 0
ЗИ
БзИ
АДК= _ 1.0 1 1 1 1 0 1 _ - 67 _ 189
ВДК= 1.1 0 0 1 1 0 1 - 51 205
СДК= 1.1 1 1 0 0 0 0 240 ?
СПК= 1.0 0 1 0 0 0 0 -16
CF = 1; SF = 1; ZF = 0; AF = 0; PF = 1; OF = 0.
Для БзИ результат неверен вследствие возникающего заема из разряда за пределами формата.
3.2. Правило для подбора операнда В выглядит следующим образом:
А + В > 128, значит 128 – А < В < 127
А = 67 (неизменно), В = 64 (подбираем)
1) А < 0, В > 0
ЗИ
БзИ
АДК= _ 1.0 1 1 1 1 0 1 _ - 67 _ 189
ВПК= 0.1 0 0 0 0 0 0 64 64
СПК= 0.1 1 1 1 1 0 1 125? 125
CF = 0; SF = 0; ZF = 0; AF = 0; PF = 1; OF = 1.
Для знакового вычитания результат некорректен вследствие переполнения, о котором можно судить по одному из двух признаков:
при разных знаках операндов знак результата отличается от знака первого операнда;
несовпадение заемов в два старшие разряда (один из них присутствует, а другой нет).
2) А > 0, В < 0
ЗИ БзИ
АПК= _ 0.1 0 0 0 0 1 1 _ 67 _ 67
ВДК= 1.1 0 0 0 0 0 0 - 64 192
СДК= 1.0 0 0 0 0 1 1 131 ?
СПК= 1.1 1 1 1 1 0 1 -125?
CF = 1; SF = 1; ZF = 0; AF = 0; PF = 0; OF = 1.
Для ЗИ результат некорректен вследствие возникающего переполнения, для БзИ результат некорректен из-за возникающего переноса из старшего разряда.
3.3. Значение числа В фиксируем (В = 51), а значение А определяется из условия А + В = 128, благодаря которой при вычитании из положительного числа отрицательного будет фиксироваться переполнение, а при вычитании из отрицательного числа положительного не будет. А = 77.
1) А > 0, B < 0
ЗИ БзИ
АПК =_ 0.1 0 0 1 1 0 1 _ 77 _ 77
ВДК = 1.1 0 0 1 1 0 1 - 51 205
СДК = 1.0 0 0 0 0 0 0 128?
СПК = 1.0 0 0 0 0 0 0 - 128?
CF = 1; SF = 1; ZF = 0; AF = 0; PF = 0; OF = 1.
Результат БзИ некорректен вследствие возникающего заема из разряда за пределами формата; для ЗИ результат некорректен из-за переполнения.
2) А < 0, B > 0
ЗИ БзИ
АДК _ 1.0 1 1 0 0 1 1 _ -77 _ 179
ВПК 0.0 1 1 0 0 1 1 51 51
СДК 1.0 0 0 0 0 0 0 128
СПК 1.0 0 0 0 0 0 0 - 128
CF = 0; SF = 1; ZF = 0; AF = 0; PF = 0; OF = 0.
Результаты ЗИ и БзИ корректны.
