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




Действительные или вещественные числа часто используются в математических вычислениях и представляются конечными или бесконечными дробями, т.е. точность представления чисел не ограничена. Однако в компьютерах числа хранятся в регистрах и ячейках памяти, которые представляют собой последовательность байтов с ограниченным количеством разрядов. Следовательно, бесконечные или очень длинные числа усекаются до некоторой длины и в компьютерном представлении выступают как приближенные.

Любое вещественное число можно записать в нормальной (научной, экспоненциальной) форме:

, (2.5.)

где – м антисса числа; основание системы счисления; порядок.

Порядок указывает, на какое количество позиций и в каком направлении должна сместиться в мантиссе точка (запятая), отделяющая дробную часть от целой.

С целью минимизации погрешности в вычислениях и эффективного использования памяти, а также в соответствии со стандартом IEEE-754[1], если мантисса находится в диапазоне , то число считается нормализованным. Именно такое представление числа с плавающей запятой и используется в компьютере. Это экономит один бит, так как неявная единица в памяти не хранится.

Замечание. Из нормализованного представления следует, что дробная часть мантиссы должна удовлетворять условию: .

Теперь можно сказать, что нормализованное число имеет следующий вид:

(2.6.)

Рассмотрим примеры представления любого числа в форме плавающей запятой:

1) 12,345(10) = 0,0012345(10) * 104 = 0,12345(10) * 102 = 1234, 5(10) * 10-2

2) 101110,11101(2) = 0,10111011101(2)*106 = 0,010111011101(2)*107

3) 1,011(2) = 10,11(2)*10-1

Из приведенных примеров можно сделать следующие выводы:

· порядок числа определяет, на сколько разрядов необходимо осуществить сдвиг относительно запятой;

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

Стандарт IEEE-754 определяет четыре основных «двоичных» формата чисел с плавающей запятой (Таблица 2.5).

Таблица 2.5.

Формат Точность Число бит Порядок Смещение порядка Мантисса Число знаков после запятой
binary 16 half          
binary 32 single          
binary 64 double          
binary 128 quadruple          

Наиболее часто используемые форматы вещественных чисел являются: с одинарной точностью (single-precision, 32 бита); с двойной точностью (double-precision, 64 бита).

Как нормализованное число, записанное в форме с плавающей запятой, записывается в память, представлено на схемах для 32-х разрядных (Рисунок 2.2) и 64-х разрядных чисел (Рисунок 2.3).

Рисунок 2.2.

Рисунок 2.3.

Первое поле, занимающее один бит с номером 31 (63), отвечает за знак числа. Второе, занимающее биты с 23-го по 30-й (с 52-го по 62-й), относится к порядку числа (или экспоненте). В стандарте IEEE-754 указано, что в этом поле сохраняется смещенный порядок. Смещенный порядок (M(n)) или смещенная экспонента, указанный на схемах связаны с обычным порядком (p) числа соотношением

, (2.7.)

где означает «смещение» и выбирается для разных форматов чисел таким образом, чтобы значение выражения (2.7.) всегда было положительно. Такой подход вызван тем обстоятельством, что знак порядка, который может быть как положительным, так и отрицательным, в компьютерном представлении числа не хранится Значение смещения для чисел различны разной разрядности указаны в Таблице 2.5. Последнее поле, занимающее 23 (52) бита от 0-го до 22-го (от 0-го до 51-го) хранит мантиссу, точнее, её дробную часть, потому как бит целой части не хранится.

Пример: Запишем внутреннее представление числа в форме с плавающей точкой в формате 32 бит.

1. Переведем его в двоичную систему счисления с 24 значащими цифрами.

2. Запишем в форме нормализованного двоичного числа с плавающей точкой:

3. Здесь мантисса, основание системы счисления (2(10)=10(2)) и порядок (4(10)=100(2))записаны в двоичной системе.

4. Вычислим машинный порядок.

5. Таким образом, в двоичном коде с плавающей запятой число примет вид:

или

Для того, чтобы получить внутреннее представление отрицательного числа , достаточно в полученном выше коде заменить в разряде знака числа 0 на 1.

Теперь переведем полученное число обратно в десятичный формат.

По виду конечного результата очевидна погрешность () в представлении двоичных чисел с плавающей запятой. В этом состоит главная особенность обработки вещественных чисел в компьютере - она всегда ведется с погрешностью [Стариченко].

 


[1] стандарт IEEE (Institute of Electrical and Electronics Engineers), описывающий формат представления чисел с плавающей точкой



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-01-30 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: