Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000544.doc
Скачиваний:
40
Добавлен:
30.04.2022
Размер:
14.75 Mб
Скачать

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

В ЭВМ вещественные десятичные числа представляются в формате с плавающей точкой. При этом используется форма записи чисел с порядком основания системы счисления: N=M*2p, где M – двоичная мантисса, а р – порядок. При записи число представляют в нормализованном виде, выделив порядок и мантиссу числа. Обычно результат нормализации представляется в виде правильной дроби, т.е. с единицей после двоичной точки и нулем в целой части числа. Однако, в IBM PC нормализованная мантисса содержит старший бит слева от двоичной точки, т.е. записывается в нормализованном виде 1.n1n2…, где n1n2…- дробная часть числа. Целая часть, всегда равная единице, прямо не представляется в некоторых форматах чисел, а учитывается неявно (представляет скрытый разряд). Следовательно, мантисса должна иметь значения в интервале [1, 2). Ее первая цифра отлична от нуля (равна единице): (1М<2). Нормализованная мантисса представлена в памяти ЭВМ в прямом коде. Старший бит мантиссы, всегда равный 1, обычно в мантиссу не записывается и является скрытым разрядом. Скрытый разряд участвует в арифметических операциях.

Вещественные числа в компьютерах различных типов записываются по-разному, но все компьютеры поддерживают несколько международных стандартных форматов, которые имеют структуру следующего вида:

Старший бит во всех форматах с плавающей точкой является знаковым и несет знак числа: 0 означает положительное число, 1 – отрицательное. Число бит для хранения мантиссы и порядка зависит от типа вещественного числа. Порядок представляется в смещенной форме: если для задания порядка выделено k двоичных разрядов, то к истинному значению порядка, прибавляют смещение, равное (2k-1-1). Однако, IBM для вещественных чисел типа REAL использует смещение равное (2k-1 +1).

Стандартные форматы представления вещественных чисел IBM (single, real, double, extended) представлены в табл. 5.1.

Форматы чисел Табл. 5.1.

Тип

Размер в байтах

Число разрядов порядка

Смещение порядка

Число

разрядов мантиссы

Первая

единица

мантиссы

single

4

8

7Fh (127)

23

скрытая

real

6

8

81h (129)

39

скрытая

double

8

11

3FFh (1023)

52

скрытая

extended

10

15

3FFFh (16383)

64

явная

Для представления чисел в формате с плавающей точкой используется несколько последовательных ячеек памяти, которые образуют 32, 48, 64 или 80-разрядное двоичное слово. Так число типа single занимает 32 бита (четыре байта): 23 бита отводится под мантиссу, 8 бит – под порядок и один бит отводится под знак числа (рис.5.6.). Мантисса имеет 24 разряда с учетом скрытого.

байт

7 старший 0

7 6 0

7 0

7 0

бит

31

30…24 23

22 0

содержимое

знак

порядок

мантисса

Рис.5.6. Формат числа типа single.

Напомним, что в семействе *86 слова записываются в смежных байтах памяти, начиная с младшего. Адресом числа является адрес его младшего байта.

Так при последовательном выводе числа типа single из памяти, начиная с младшего байта (адреса числа), получим содержимое байтов

байт

7 младший 0

7 0

7 0

7 старший 0

бит числа

7 ……….. 0

15 ….. 8

23 22 ….. 16

31 30 ….. 24

содержимое

м …… … м

м …… . .м

р м ………. м

Зн р ………р

Степень разряда

-16 ………–23

-8 ……. –15

0 -1 …… .. –7

7 ………1

где: Зн – знаковый разряд, р – смещенный порядок числа, м – нормализованная мантисса.

Формат машинного представления данных типа REAL в IBM PC имеет вид

байт

7 … 0 младший

7 … 0

7 … … 0

7 ….. 0

7 … 0

7 … 0 старший

бит числа

7 ….. 0

15 ……8

23 … 16

31 … 24

39 … 32

47 46 …. 40

содержимое

p …… р

м … м

м … м

м … . .м

м …. м

Зн м…… м

степень

разряда

7 … 0

-32 … -39

-24 … -31

-16… –23

-8 ... –15

-1 … -7

Для уточнения внутреннего представления данных сложной структуры необходимо обращаться к технической документации на ЭВМ и программному обеспечению.