- •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. Организация обработки данных с плавающей точкой в цпос с фт
Замечание
При вычислении в цикле суммы siлокальных произведений переносы влево от старшего разряда игнорируются.
Приведем пример умножения в дополнительном коде двух чисел xиyдлинойn= 4 бит:
x = x0x1x2x3 = 1100;
y = y0y1y2y3 = 1101;
Циклический алгоритм умножения показан в табл.3.8.
Таблица 3.8.Циклический алгоритм умножения
Этап |
Результат |
Подготовка к циклу i=n_1 = 4_1 = 3; Тело цикла s3 = s4 +y . x3 Так как x3= 0 Расширение знака s3 |
s4 = 0000
s3 = s4 = 0000 s3 = 00000 |
i = i _ 1 = 3 _1 = 2 s2 = s3 +y . x2 Так как x2= 0 Расширение знака s2 |
s2 = s3 = 00000 s3 = 000000 |
i = i _ 1 = 2 _1 = 1 s1 = s2 +y . x2 Так как x1= 1
Расширение знака s1 |
s1 = 000000 + 1101 s1 = 110100 s1 = 1110100 |
i=i_1 = 2_1 = 1 Выход из цикла s0 = s1 +y . x0 Так как x1= 1 |
s0 = 1110100 - 1101 s0 = 0001100
|
Результат при целочисленной арифметике |
00001100 |
Результат при дробной арифметике |
00011000 |
Из приведенного примера видно, что операция умножения выполняется одинаково – как с беззнаковыми числами, независимо от типа данных и арифметики, различие проявляется только на этапе сохранения конечного результата в формате “двойное слово” длиной 2n. Трактовка типа результата – целые или дробные числа – возлагается на пользователя.
3.7.10. Преобразование форматов в цпос с фиксированной точкой
Преобразование форматов происходит при различного рода пересылках данных (исходных, промежуточных и конечных) из ячеек памяти в регистры и наоборот, когда изменяется формат (“слово”, “длинное слово”, “расширенное слово”). Наиболее общие правила преобразований форматов показаны на рис. 3.23-3.25. В качестве примеров выбраны форматы: слово длиной 4 бита, двойное слово – 8 битов, расширенное слово – 10 битов. Приведенные правила легко распространяются на любую длину слов.
а) слово в двойное слово
3 2 1 0
S |
X |
X |
X |
7 6 5 4 3 2 1 0
-
S
S
S
S
S
X
X
X
б) слово в расширенное словo
3 2 1 0
S |
X |
X |
X |
9 8 7 6 5 4 3 2 1 0
S |
S |
S |
S |
S |
S |
S |
X |
X |
X |
в) двойное слово в
расширенное
7 6 5 4 3 2 1 0
-
S
X
X
X
X
X
X
X
9 8 7 6 5 4 3 2 1 0
S |
S |
S |
X |
X |
X |
X |
X |
X |
X |
г) двойное слово в слово
7 6 5 4 3 2 1 0
-
S
S
S
S
S
X
X
X
3 2 1 0
S |
X |
X |
X |
д) расширенное слово в слово
9 8 7 6 5 4 3 2 1 0
S |
S |
S |
S |
S |
S |
S |
X |
X |
X |
3 2 1 0
S |
X |
X |
X |
S – знак
X– значащий бит
Рис.3.23.Преобразование форматов представления целых чисел при целочисленной арифметике
а ) слово в двойное слово
3 2 1 0
S |
X |
X |
X |
7 6 5 4 3 2 1 0
-
S
0
0
0
0
X
X
X
б ) слово в расширенное слово
3 2 1 0
S |
X |
X |
X |
9 8 7 6 5 4 3 2 1 0
S |
S |
S |
0 |
0 |
0 |
0 |
X |
X |
X |
в )двойное слово в расширенное слово
7 6 5 4 3 2 1 0
-
S
X
X
X
X
X
X
X
9 8 7 6 5 4 3 2 1 0
S |
S |
S |
X |
X |
X |
X |
X |
X |
X |
г ) двойное слово в слово
7 6 5 4 3 2 1 0
-
S
X
X
X
X
X
X
X
3 2 1 0
S |
X |
X |
X |
д ) расширенное слово в слово
9 8 7 6 5 4 3 2 1 0
S |
S |
S |
X |
X |
X |
X |
X |
X |
X |
3 2 1 0
S |
X |
X |
X |
S – знак
X– значащий бит
Рис.3.24.Преобразование форматов представления дробных чисел при целочисленной арифметике
а ) слово в двойное слово
3 2 1 0
S |
X |
X |
X |
7 6 5 4 3 2 1 0
-
S
X
X
X
0
0
0
0
б ) слово в расширенное слово
3 2 1 0
S |
X |
X |
X |
9 8 7 6 5 4 3 2 1 0
S |
S |
S |
X |
X |
X |
0 |
0 |
0 |
0 |
в )двойное слово в расширенное слово
7 6 5 4 3 2 1 0
-
S
X
X
X
X
X
X
X
9 8 7 6 5 4 3 2 1 0
S |
S |
S |
X |
X |
X |
X |
X |
X |
X |
г ) двойное слово в слово
7 6 5 4 3 2 1 0
-
S
X
X
X
X
X
X
X
3 2 1 0
S |
X |
X |
X |
д ) расширенное слово в слово
9 8 7 6 5 4 3 2 1 0
S |
S |
S |
X |
X |
X |
X |
X |
X |
X |
3 2 1 0
S |
X |
X |
X |
S – знак
X– значащий бит
Рис.3.25.Преобразование форматов представления дробных чисел при дробной арифметике