Операции над числами с плавающей точкой

Содержание

Слайд 2

Х= ±SPxqx, Pсмещ.= (2k-1-1)+Pисх. Представление вещественных чисел 31 22 0 IEEE

Х= ±SPxqx,


Pсмещ.= (2k-1-1)+Pисх.

Представление вещественных чисел

31 22 0

IEEE 754 (IEC

60559) — широко используемый стандарт IEEE, описывающий формат представления чисел с плавающей точкой. Используется в программных (компиляторы с разных языков программирования) и аппаратных (CPU и FPU) реализациях арифметических действий (математических операций).

определяются требования к порядку- смещенный
k- кол-во разрядов выделенных под порядок
определяются требования к мантиссе-нормализованная 2 > |q x| ≥1

Слайд 3

Представление вещественных чисел Базируется на экспоненциальной форме записи числа: A =

Представление вещественных чисел

Базируется на экспоненциальной форме записи числа:
A =

m *sp
m - мантисса числа
s – основание СС
p – порядок числа
10010с.с. = 0.1*103 =10000*10-2
1.определяются требования к порядку: может быть как + , так и -
2. определяются требования к мантиссе.
Для единообразия представления чисел используется нормализованная форма:
1/s <= |m| <1 (правильная дробь и после запятой цифра, отличная от нуля.)
Пример. Преобразуйте число 555,55, записанное в естественной форме, в экспоненциальную форму с нормализованной мантиссой: 555,55 =0,55555 * 103
Нормализованная мантисса: 0,55555
Порядок: p = 3
Слайд 4

Слайд 5

С фиксированной точкой С плавающей точкой

С фиксированной точкой

С плавающей точкой

Слайд 6

В процессорах Intel (стандарт IEEE 754) применяется 3 (основных)формата с плавающей точкой: короткий, длинный и расширенный.

В процессорах Intel (стандарт IEEE 754) применяется 3 (основных)формата с плавающей

точкой: короткий, длинный и расширенный.
Слайд 7

Рсм, содержащий во всех разрядах 1 не используется, т.к. зарезервирован для

Рсм, содержащий во всех разрядах 1 не используется, т.к. зарезервирован для

указания на переполнение порядка или потерю значимости мантиссы.
При этом + и - переполнение идентифицируются соответственно + и -мантиссами, содержащими в обоих случаях 1 во всех цифровых разрядах. Указанием на потерю значимости служит отрицательность порядка мантиссы с 0 во всех цифровых разрядах.
При нулевых кодах порядка и мантиссы представляемое число полагается равным 0.
Нулевому порядку в коротком формате соответствует значение фиксированного смещения равное 127, а в разрядной сетке запишется двоичное представление 01111111
Отрицательному порядку -1, соответствует 127-1=126→ 01111110 Положительному порядку +1, соответствует 127+1=128→10000000,т.е. все положительные порядки имеют старший бит порядка равный 1, а отрицательные-0.

замечания

Слайд 8

Так как нормализованное число в старшем разряде всегда содержит 1, то

Так как нормализованное число в старшем разряде всегда содержит 1, то

при его представлении в памяти появляется возможность считать 1-й разряд вещественного числа единичным по умолчанию. И учитывать его наличие только на аппаратном уровне. Это дает возможность увеличить диапазон представимых чисел.
Это утверждение справедливо только для короткого и длинного форматов.
Слайд 9

45.5610 =1011 01.10 0011 1101 0111 0000 1010 0011 1101 0111

45.5610 =1011 01.10 0011 1101 0111 0000 1010 0011 1101 0111

0000 1010 1110 0001 0111 0001
Смещенный порядок 127+5=132 или 10000100
Запись числа в коротком формате со скрытым старшим разрядом мантиссы.
0 10000100 01101100011110101110001
Запись результата в 16-ричной с.с. 42363D71 H
Слайд 10

Пример . Записать представление числа 0,089 в форме с плавающей точкой.

Пример . Записать представление числа 0,089 в форме с плавающей точкой. Решение

Переведем

в двоичную СС:
0,08910=0, 0001011000000000…02
Запишем в форме нормализованного двоичного числа: 0, 10110000000000000000 * 102100
Вычислим машинный порядок в двоичной СС:
РСМ = 01111111-100 = 01111011
Запишем число в коротком формате:
0 01111011 0110000000000000000
Шестнадцатеричная форма 3DB00000
Слайд 11

Алгоритм записи внутреннего представления вещественного числа Перевести модуль числа в двоичную

Алгоритм записи внутреннего представления вещественного числа

Перевести модуль числа в двоичную СС

с 24 значащими цифрами.
Нормализовать двоичное число.
Найти машинный порядок в двоичной СС.
Учитывая знак числа, записать его в 4-х байтовом машинном слове.
Слайд 12

Пример 1 . Записать представление числа 122,1875 в форме с плавающей

Пример 1 . Записать представление числа 122,1875 в форме с плавающей

точкой в коротком формате

Переведем в двоичную СС:
122,187510=1111010, 00110000000000002
Запишем в форме нормализованного двоичного числа: 0, 1111010 0011000000000000 * 106
Вычислим Pcм :
Pcм = 127 +6 → 100001012С.С
Запишем число в 4-х байтовой ячейке:
0 10000101 111010 00110000 00000000
Шестнадцатеричная форма 42F46000

Слайд 13

Пример . По шестнадцатеричной форме представления числа в форме с плавающей

Пример . По шестнадцатеричной форме представления числа в форме с плавающей

точкой C4011000 восстановить число. 1. Перейдем к двоичному представлению числа: 1100 0100 0000 0001 0001 0000 0000 0000 1 10001000 000000010001 00000000 00000000 восстанавливаем 1 в мантиссе 1 10001000 1000000010001 00000000 00000000

2. В старшем разряде с номером 31 записана 1, значит получен код отрицательного числа. Получим порядок числа:
pИСХ=100010002 – 011111112=10012=910
3. Запишем в виде нормализованного дв. числа с плавающей точкой с учетом знака числа: -0,100000010001000000000000·21001
В двоичной системе СС число имеет вид: -100000010,0012
Переведем число в десятичную СС:
-100000010,0012=-(1*28+1*21+1*2-3)=-258,12510

Слайд 14

Представление чисел в формате с плавающей точкой Занимает в памяти ПК

Представление чисел в формате с плавающей точкой

Занимает в памяти ПК

4 (обычная точность) или 8 байтов (двойная точность)
Выделяются разряды для хранения знака мантиссы, знака порядка, порядка и мантиссы.
Максимальное значение порядка числа:
11111112 = 12710
Максимальное значение числа составляет:
2127 = 1, 7014118346046923173168730371588 *1038
Максимальное значение положительной мантиссы равно:
223 -1 ~ 223 = 2(10*2,3) ~ 10002,3 = 10(2,3*3) ~ 107
Максимальное значение чисел обычной точности вычислений составляет 1,701411 *1038
Слайд 15

Операции сложения над числами с плавающей точкой: Z=X+Y= SPx (qx+qy/ SPx-Py)

Операции сложения над числами с плавающей точкой:
Z=X+Y= SPx (qx+qy/ SPx-Py) =

SPzqz

Алгоритм сложения чисел с плавающей точкой:
1.Производится выравнивание порядков чисел. Порядок меньшего (по модулю) числа принимается равным порядку большего, а мантисса меньшего сдвигается вправо на количество разрядов, равное разности порядков.
2.Производится сложение (вычитание) мантисс по правилам двоичной арифметики.
3.Нормализация результата.

Слайд 16

При сравнении порядков возможны пять случаев: Рх—Ру>m (m — число разрядов

При сравнении порядков возможны пять случаев:
Рх—Ру>m (m — число разрядов мантиссы).

В качестве результата суммирования сразу может быть взято первое слага­емое, так как при выравнивании порядков все разряды мантиссы второго слагаемого принимают нулевое значение;
Ру—Рх>m- В качестве результата суммирования может быть взято второе слагаемое;
Рх—Ру = 0. Можно приступить к суммированию мантисс;
Рх—Ру= k1(k1Ру—Рх> = k2(k2

Сложение (вычитание) мантисс производится по правилам сложения (вычитания) чисел с фиксированной точкой.

Слайд 17

Слайд 18

Нормализация суммы (разности) производится в случае невыполнения условия 1>qz≥1/s, при этом,

Нормализация суммы (разности) производится в случае невыполнения условия 1>qz≥1/s, при этом,


-если qz≥X, Pz увеличивается на 1, а мантисса qz сдвигается на один S-ичный разряд вправо, что дает │qz│-если │qz│ (При qz = 0 нормализация не выполняется.)
При получении порядка +pz, переполняющего разрядную сетку, должен формироваться сигнал прерывания из-за переполнения порядка.
При получении порядка -pz , переполняющего разрядную сетку, формируются нулевой результат и признак исчезновения порядка.
Слайд 19

Пример. Сложить 4,63 +4,63 =9,26 0.100101000010000…….0 Рсм=127+2=129 + 0.100101000010000….....0 1.001010000100000…….0 Возникло

Пример.
Сложить 4,63 +4,63 =9,26
0.100101000010000…….0 Рсм=127+2=129
+ 0.100101000010000….....0
1.001010000100000…….0
Возникло

переполнение:
-необходимо произвести сдвиг вправо на 1 разряд,
-порядок увеличить на 1.
Рсм=130 , q= 0.100101000010000….0
Переведем число в десятичную СС:
1001,0100001000 =-(1*20+1*23+1*2-2 +1*2-7 )=9, 257812
Слайд 20

Умножение чисел с плавающей точкой выполняется в соответствии с формулой Z=X*Y=SPx

Умножение чисел с плавающей точкой выполняется в соответствии с формулой

Z=X*Y=SPx qx *SPyqy,=S(Px + Py)qx *qy = SPz qz

Деление чисел с плавающей точкой выполняется в соответствии с формулой
Z=X/Y=SPxqx/SPyqy=S(Px-Py)qx/qy = SPzqz

Слайд 21

Устройства для выполнения логических операций

Устройства для выполнения логических операций

Слайд 22

Слайд 23

Слайд 24

Слайд 25

На выходе Ki образуется конъюнкция На выходе Mi формируется значение суммы

На выходе Ki образуется конъюнкция

На выходе Mi формируется значение суммы

по модулю 2

Выходы Ki и Mi соединены со входами РгСОЛО

В РгСОЛО заносится значение состояния выходов Ki

В РгСОЛО заносится значение состояния выходов Mi

Если выполняются 2 микрооперации, то в РгСОЛО заносится результат поразрядной операции ИЛИ

Слайд 26

Задание 1. Преобразовать следующие числа с плавающей точкой одинарной точности из

Задание 1.
Преобразовать следующие числа с плавающей точкой одинарной точности из шестнадцатеричной

в десятичную систему счисления.
Таблица 14. Исходные данные
№ вар Исх.данные №вар. Исх.данные
4175С28FH 9 41A2041
Задание 2.
Преобразовать следующие числа в формат стандарта IEEE с одинарной точностью. Результаты представить в восьми шестнадцатеричных разрядах.
Таблица 15.Исходные данные
№ варианта Исх. данные № варианта Исх. данные № варианта Исх. данные
1 9 9 -12.45 17 -9.12
2 5.32 10 6.25 18 2.86
Слайд 27