Какие числа положительные, а какие отрицательные? При таком представлении отрицательными будут те числа, у которых старший бит будет равен 1, а положительными, — у которых старший бит равен 0.
Диапазоны значений положительных чисел следующие:
Размер, байт |
Диапазон |
|
Беззнаковые |
Знаковые |
|
1 |
0–28-1=255 |
-27–27-1=127 |
2 |
0–216-1=65 535 |
-215–215-1=32 767 |
4 |
0–232-1=4 294 967 295 |
-231–231-1=2 147 483 647 |
Целых чисел, более четырёх байт размером, процессор Intel за одну операцию обрабатывать не умеет.
Основным представлением дробных чисел в большинстве ЭЦВМ является число с плавающей точкой, которое является дискретным вариантом экспоненциального представления.
В 1985 г. был принят стандарт IEEE 754, который поддерживается сейчас большинством процессоров, включая Intel, SPARC и JVM. Основным типом чисел с плавающей точкой считается нормализованное число. Предусмотрены также другие представления.
Стандарт определяет три формата. Во всех трёх случаях в памяти хранится знак, смещённая экспонента и мантисса, которые расположены следующим образом:
Знак |
Экспонента |
Мантисса |
Все три формата начинаются со знакового бита; 0 указывает на положительное число, 1 — на отрицательное. Затем следует смещённая экспонента. Минимальное (0) и максимальное значение экспонент не используются для нормализованных чисел. У них есть специальное назначение.
Нормализованная мантисса состоит из подразумеваемых первого единичного бита и двоичной запятой, за которыми идут произвольные биты, которые и хранятся в памяти. Если все биты мантиссы равны 0, то мантисса имеет значение 1. В английском языке во избежание путаницы для обозначения неявного бита, неявной двоичной запятой и явных битов мантиссы вместо термина «mantissa» используется термин «significand». Все нормализованные числа имеют 1bsignificand<2.
Характеристики форматов приведены в таблице 3.1.
Таблица 3.1. Характеристики форматов чисел с плавающей точкой
Параметр |
Точность |
||
одинарная |
двойная |
повышенная |
|
общее количество битов |
32 |
64 |
80 |
количество битов в знаке |
1 |
1 |
1 |
количество битов в экспоненте |
8 |
11 |
16 |
количество битов в мантиссе |
23 |
52 |
63 |
смещение экспоненты |
127 |
1023 |
|
область значений экспоненты |
-126–127 |
-1022–1023 |
|
наименьшее нормализованное число |
2-126 |
2-1022 |
|
наибольшее нормализованное число |
≈2128 |
≈21024 |
|
диапазон десятичных дробей |
≈10-38–1038 |
≈10-308–10308 |
|
наименьшее ненормализованное число |
2-150≈10-45 |
2-1074≈10-324 |
Числа с плавающей точкой имеют традиционные проблемы: переполнение, потеря значимости и неинициализированные числа. Для частичного решения этих проблем стандартом предусмотрены ещё четыре типа чисел.
Потеря значимости возникает, если абсолютное значение результата операции менее наименьшего нормализованного числа. На этот случай в стандарт введены ненормализованные числа. Такие числа имеют значение смещённой экспоненты 0, то есть действительное значение -127. У ненормализованных чисел подразумеваемый бит равен 0, а не 1 как у нормализованных.
Наименьшее нормализованное число с одинарной точностью содержит 1 в смещённой экспоненте, то есть -126, и 0 в мантиссе (для одинарной точности: 0.00000001.00000000000000000000000, точки отделяют знаковый разряд от мантиссы) и представляет 2-126. Наибольшее ненормализованное число содержит 0 в смещённой экспоненте, то есть -127, и все единицы в мантиссе (для одинарной точности: 0.00000000.11111111111111111111111) и представляет (1-2-24)·2-126, то есть почти то же самое число. Следует отметить, что это число содержит только 23 значимых бита, а все нормализованные числа — 24 бита.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.