- •1. Понятие системы счисления
- •2. Перевод чисел из одной системы счисления в другую
- •3. Представление чисел с фиксированной и плавающей запятой в эвм.
- •4. Форматы данных, прямой, обратный, дополнительный код.
- •5. Сложение (вычитание) двоичных чисел с фиксированной запятой.
- •6 Арифметика чисел с плавающей запятой.
- •7 Умножение двоичных чисел с фиксированной запятой
- •8 Метод пропуска такта суммирования
- •9. Деление в прямых кодах.
- •10. Деление в доп. Кодах.
- •11. Ускоренные методы операции деления.
- •12. Извлечение квадратного корня из двоичных чисел.
- •0,01Ххх..Х
- •14. Особенности выполнения операции сложения в d-кодах.
- •15. Получение дополнительного кода чисел в d-кодах.
- •16. Операция умножения чисел в d-кодах.
- •17. Деление в d-кодах
- •19. Свойства бинарных отношений.
- •20. Толерантность, эквивалентность, отношения порядка.
- •25. Специальные классы булевых функций
- •26. Днф.
- •27 Скнф.
- •28 Метод Квайна-Мак-Класки
- •31.1 Минизация систем переключательных функций
6 Арифметика чисел с плавающей запятой.
При вычислительных операциях с плавающей запятой двоичные числа представляются в виде мантиссы с её знаком, которая по модулю строго меньше единицы, и порядка с его знаком, который может быть равен нулю или любому (в пределах отведенного числа разрядов) целому числу, т.е. N=±m*10±p .
Операция сложения (вычитания) чисел с плавающей запятой производится след. образом.
Первоначально уравнивают порядки слагаемых, для того чтобы привести в соответствие весовые коэффициенты одноименных разрядов мантисс слагаемых. Для этого меньший порядок слагаемого увеличивают до значения, равного большему порядку, а мантиссу этого слагаемого денормализуют, т.е. сдвигают вправо на число разрядов, равное разности между большим и меньшим порядками слагаемых.
Затем мантиссы обоих слагаемых переводят в модифицированный обратный или в модифицированный дополнительный код с учётом их знаков и складывают в соответствующем коде по рассмотренным выше правилам сложения чисел с фиксированной запятой. При этом возможны 3 случая:
Сложение мантисс слагаемых произошло без переполнения разрядной сетки и нарушения нормализации. В этом случае результат сложения мантисс переводится из модифицированного обратного (дополнительного) кода в прямой код и представляется как мантисса суммы. Порядком суммы при этом является общий после уравнивания порядок слагаемых.
Слагаемые: X (mx = -0,100100110; px = +011); Y(my = +0,110001101; py = +101);
Уравнивание порядков слагаемых, т.е. денормализация слагаемого X, чтобы его порядок стал равен +101:
X (mx = -0,001001001; px = +101).
Перевод мантисс обоих слагаемых в модифицированный обратный код:
[mx] Mob =11,110110110; [my] Mob=00,110001101.
Сложение мантисс: [mx] Mob =11,110110110
[my] Mob=00,110001101
1 00,101000011
+1
[mz]Mob=[mx]Mob+[my]Mob=00,101000100.
Перевод мантиссы суммы в прямой код [mz]пр=0,101000100.
Результат операции сложения Z=X+Y (mz = +0,101000100; pz = +101).
Сложение мантисс слагаемых произошло без переполнения разрядной сетки,
но результат после перевода мантиссы суммы в прямой код оказался ненормализованным.
В этом случае производится нормализация результата сложения,
т.е. мантисса суммы сдвигается на соответствующее число разрядов влево,
а порядок суммы уменьшается на такое же число.
Слагаемые: X (mx = -0,11101010; px = +101); Y(my = +0,11010101; py = +010);
Будем производить вычисление в модифицированном обратном коде. Уравнение порядков в данном примере не требуется.
Перевод мантисс слагаемых в модифицированный обратный код: [mx] Mob =11,00010101; [my] Mob=00,11010101.
Сложение мантисс слагаемых:[mx] Mob =11,00010101
[my] Mob= 00,11010101
[mz]Mob=[mx]Mob+[my]Mob=11,11101010.
Перевод мантиссы суммы в прямой код: [mz]пр=1,00010101.
Произошла денормализация вправо на три разряда.
Устранение денормализации путем сдвига прямого кода мантиссы суммы на три разряда влево
и вычитания из первоначального порядка суммы трех единиц.
Вычитание производится в модифицированном дополнительном или модифицированном обратном коде: [mz]пр=1,10101000; pz = -001. Результат: Z=X+Y (mz = -0,1010100; pz = -001)
При сложении мантисс слагаемых произошло переполнение разрядной сетки, т.е. в знаковых разрядах мантиссы суммы оказалась комбинация 01 или 10. В этом случае цифры всех разрядов данной мантиссы суммы, включая знаковые, сдвигаются на один разряд вправо, после чего в старший знаковый разряд заносится цифра, совпадающая с цифрой, оказавшейся в младшем знаковом разряде после сдвига. Полученный таким образом результат переводится в прямой код и представляет собой мантиссу суммы. Порядок же суммы при этом следует увеличить, и он будет на единицу больше значения уравненных порядков слагаемых.
Слагаемые: X (mx = -0,101011011; px = +110); Y(my = -0,110001101; py = +101);
Будем производить вычисления в модифицированном обратном коде.
Уравнение порядков слагаемых Y (my = -0,011000110; py = +110).
Перевод мантисс слагаемых в модифицированный обратный код: [mx] Mob =11,010100100
[my] Mob= 11,100111001
Сложение мантисс слагаемых: [mx] Mob =11,010100100
[my] Mob=11,100111001
1 10,111011101
+1
10,111011110
Произошло переполнение разрядной сетки (денормализация влево), т.к. в знаковых разрядах мантиссы суммы оказались разные знаки.
Устранение переполнения (нормализация) путём сдвига мантиссы суммы на один разряд вправо и прибавления единицы к первоначально полученному порядку суммы в модифицированном дополнительном или модифицированном обратном коде.
[mz]Mob=[mx]Mob+[my]Mob=11,011101111; pz = +111.
Перевод мантиссы суммы в прямой код: [mz]пр=1,100010000. Результат операции сложения Z=X+Y
(mz = -0,100010000; pz = +111).