- •3.1 Представление данных в алгоритме.
- •3.2 Представление данных в программе
- •3.3 Представление данных в цпос
- •3.5. Форматы данных
- •3.7.3. Представление вещественных чисел
- •3. 7. 4. Шестнадцатеричный эквивалент представления данных
- •3. 7. 5. Целочисленная и дробная арифметики
- •3.7.6. Коды чисел
- •Прямой код
- •Дополнительный код
- •Двойное слово
- •Msp lsp
- •Ext msp lsp
- •3. 7.7. Представление данных
- •Сложение и вычитание
- •Умножение
- •Замечание
- •3.7.10. Преобразование форматов в цпос с фиксированной точкой
- •3.7.11. Диапазон, динамический диапазон
- •3.7.12. Увеличение динамического диапазона
- •3. 8. 2. Форма представления данных с плавающей точкой
- •3.8.4. Преобразование форматов в цпос с плавающей точкой
- •3.8.5. Нормализованные числа j
- •3,8.6. Специально данные
- •3.8.7. Арифметические операции над данными с плавающей точкой
- •3.8.8. Диапазон, динамический диапазон и точность представления чисел с плавающей точкой
- •3.9. Сравнение цпос с фиксированной и плавающей точками
- •3.10. Организация обработки данных с плавающей точкой в цпос с фт
Сложение и вычитание
На рис.3.16 приведен пример сложения чисел в дополнительном коде как беззнаковых чисел по правилам обычной двоичной арифметики. На этом же рисунке дается различная трактовка слагаемых и результата. Все числа представлены в формате “слово” длиной 8 битов.
Слагаемое 7 6 5 4 3 2 1 0
-
0
0
1
1
0
1
0
1
Слагаемое 7 6 5 4 3 2 1 0
-
1
1
0
1
0
0
1
1
Сумма 7 6 5 4 3 2 1 0
-
0
0
0
0
1
0
0
0
Трактовка типа данных и типа арифметики
а) целые числа
( 25+ 24 + 22 + 20 ) + (_ 27 + 26+ 24+ 21+ 20) = 23= 8
б) дробные числа; дробная арифметика
( 2-2 + 2-3+ 2-5+ 2-7) + (_20 + 2-1+ 2-3+2-6+ 2-7 ) = 23= 0,0625
в) дробные числа; целочисленная арифметика;
слагаемые и сумма – целые числа, которые
масштабируются к машинной единице равной 2
( см. вариант а)
53 / 128 + (_ 45) / 128 = 8 / 128 = 0,0625
Рис. 3.16. Сложение в дополнительном коде
Как видно из рис.3.16, операция сложения в дополнительном коде выполняется одинаково для целых и дробных чисел при целочисленной и дробной арифметиках.
На рис.3.17 приведен пример вычитания чисел в дополнительном коде как беззнаковых чисел по правилам обычной двоичной арифметики. Трактовка исходных данных и результата аналогична рис. 3.16. Все числа представлены в формате “слово” длиной 8 битов.
Уменьшаемое
7 6 5 4 3 2 1 0
-
0
1
1
0
0
0
0
0
Вычитаемое 7 6 5 4 3 2 1 0
-
0
0
0
1
0
0
0
0
Разность 7 6 5 4 3 2 1 0
-
0
1
0
1
0
0
0
0
Трактовка типа данных и типа арифметики
а) целые числа
(26+ 25)_24=96_ 16 = 80
б) дробные числа; дробная арифметика
(2-1+ 2-2)_2-3 = 0,625
в) дробные числа; целочисленная арифметика;
уменьшаемое, вычитаемое и разность _целые числа,
которые масштабируются к машинной единице равной 27
96 / 128 _16 / 128 = 80 / 128 = 0,625
Рис. 3.17. Вычитание в дополнительном коде