Реферат
По дисцеплине «Архитектура ЭВМ»
на тему:
«Стандарт двоичной арифметики
С плавающей точкой IEEE 754»
Выполнил: студент 34 группы Мартынов Андрей Алексеевич |
Проверил: Кандидат физ.-мат. наук Кудряшов М.Ю. Оценка |
Тверь 2017
Оглавление
I часть........................................................................................................................ | |
Представление чисел с плавающей точкой всоответсвии со стандартом IEEE 754................................................................................................................ | |
Округление........................................................................................................... | |
Сложение чисел с плавающей точкой........................................................... | |
II Часть....................................................................................................................... | |
Первое число.................................................................................................. | |
Второе число................................................................................................. | |
Сумма.............................................................................................................. | |
Список литературы................................................................................................. |
I Часть
Языки программирования поддерживают дробные числа, которые в математике называются действительными. Рассмотрим несколько примеров действительных чисел:
3.14159265...(«пи»);
2.71828..(«е»)
3, 15576 * 109 (количество секунд в столетии)
В последнем примере число не представляло собой небольшую дробь, но было слишком большим для того, чтобы быть представленным 32-разрядным целым числом со знаком. Альтернативная форма записи для последнего числа, у которго слева от десятичного знака имеется всего одна цифра, называется экспоненциальным представлением. Число в экспоненциальном представлении, не имеющее лидирующих нулей, называется нормализованным числом и является обычной формой записи. Например, 1,0* 109 относится к нормализованному экспоненциальному представлению, а 0,110 * 105 и 10,0*1011 — нет.
Чтобы сохранить двоичное число в нормализованной форме, требуется основание, которое можно будет увеличивать или уменьшать на конкретное количестве разрядов, чтобы сдвинуть число и получить одну ненулевую цифру слева от используемого в нем разделителя целой и дробной части. Так как в ЭВМ используются только двоичные числа, то в качестве основания возьмём 2.
|
Компьютерная арифметика, поддерживающая такие числа, называется арифметикой с плавающей точкой (floating point), потому что она представляет числа, в которых двоичная точка не фиксирована, как в целых числах
Стандартная экспоненциальная запись для вещественных чисел в нормализованной форме дает следующие преимущества:
1) она упрощает обмен данными, включающими числа с плавающей точкой, за счет однообразного представления алгоритмы арифметики чисел с плавающей точкой;
2) повышает точность чисел сохраняемых в слове, поскольку ненужные лидирующие нули заменяются реальными цифрами, расположенными справа от двоичном точки.
Один из способов представления вещественных чисел описывает стандарт IEEE 754.
Стандарт IEEE 754 для чисел с плавающей точкой включает в себя особые случаи представления таких чисел, как 0, бесконечность и недопустимые результаты. К примеру, представить число 0 в виде числа с плавающей точкой невозможно из-за наличия неявной старшей единицы. Для этих случаев зарезервированы специальные коды: порядок состоит только из нулей или единиц. В Таблице показано обозначение 0, ±∞, NaN. NaN используется для чисел, которые не существуют, например корень из -1 и log2(-5)
|
Если исключить специальные случаи, упомянутые ранее, обычные числа одинарной точности охватывают диапазон от ±1.175494 * 1038 до ±3.402824 * 1038. Их точность составляет около 7 десятичных разрядов, так как 2-24 ≈ 10-7. Числа с двойной точностью охватывают диапазон от ±2.22507385850720 * 10-308 до ±1.79769313486232 * 10308 и имеют точность около 15 десятичных разрядов.
Представление чисел с плавающей точкой в
соответсвии со стандартом IEEE 754
Числа с плавающей запятой одинарной точности (32 бита) представляются таким образом:
Первый бит – знак числа, затем 8 бит отводится на экспоненту и 23 бита на мантису
Представления числа 22810 = 111001002 * 20 = 1.110012 * 27 |
А числа с плавающей запятой двойной точности (64 бита):
Первый бит – знак числа, затем 11 бит отводится на экспоненту и 52 бита на мантису
В двоичных числах с плавающей точкой первый бит мантиссы (слева от точки) всегда равен 1, и поэтому его можно не сохранять. Это называется неявная старшая единица. Неявная старшая единица не входит в 23 бита мантиссы. Сохраняются только дробные биты. Это освобождает дополнительный бит для полезных данных.
Порядок должен представлять, как положительный показатель степени, так и отрицательный. Для этого в формате с плавающей точкой используется смещенный порядок, который представляет собой первоначальный порядок плюс постоянное смещение. 32-битное представление с плавающей точкой использует смещение 127.Смещение экспоненты для чисел с двойной точностью служит число 1023.
|
Таким образом, число с плавающей точкой будет иметь вид:
(-1)S * (1 + Мантисса) * 2(экспоменента + смещение),
S = 0, если число положительное S = 1, иначе |
где
Округление
Арифметические результаты, которые выходят за пределы доступной точности, необходимо округлять до наиболее близких чисел. Существуют следующие способы округления: округление в меньшую сторону (1), округление в большую сторону (2), округление до нуля (3) и округление к ближайшему числу (4). По умолчанию принято округление к ближайшему числу. В этом случае, если два числа находятся на одинаковом расстоянии, то выбирается то, у которого будет ноль в младшем разряде дробной части. Число переполняется, когда его величина слишком велика для какого-либо представления. Аналогично, число является изчезающе малым, когда оно слишком мало для представления. При округлении (4) переполненные числа округляются до ±∝, а изчезающе малые округляются до нуля.