Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП Арифметика ТЕОРИЯ_v4 2012-весна.doc
Скачиваний:
12
Добавлен:
04.09.2019
Размер:
752.13 Кб
Скачать

2.3.3. Числа с плавающей точкой (float)

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

Табл.2.16. Форматы чисел с плавающей точкой в стандарте IEEE 754

Тип данных

Формат

Размер n, бит

Диапазон

float

Одинарная точность

32

3.4E-38 … 3.4E+38

double

Двойная точность

64

1.7E-308 … 1.7E+308

long double

Повышенная точность

80

3.4E-4932 … 3.4E+4932

Формат 32-разрядного двоичного числа с плавающей точкой приведен в табл2.17.

Табл.2.17. Структура 32-разрядного двоичного формата с плавающей точкой

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

+/-

Смещенный порядок,

8 бит

Мантисса, 23 бита

Примечание: бит 31 – знак числа.

Пример: Представить положительное вещественное десятичное число +125,5710 в 32-разрядном двоичном формате (float) с плавающей точкой.

Для представления положительного числа в формате с плавающей точкой выполняются следующие операции:

А) Перевод целой части десятичного числа: 12510 = 11111012.

Б) Перевод дробной части десятичного числа: 0,5710 = 0,100100012

В) Запись двоичного числа в формате с фиксированной точкой: 125,5710 = 1111101,100100012.

Г) Нормализация числа c фиксированной точкой.

Нормализованное число – это число, записанное в экспоненциальном виде. Нормализация выполняется сдвигом точки (запятой) вправо или влево до позиции, в которой в целой части остается одна значащая единица. В результате получается нормализованное двоичное число с порядком:

1111101,100100012 = 1,111101100100012 ∙ 26 (порядок числа равен 6).

Д) Определение знака, мантиссы и смещенного порядка

  • Знак числа 125,5710 положительный, поэтому в знаковом 31-ом разряде записывается 0 (ноль).

  • Мантисса представляет собой дробную часть нормализованного числа: 11110110010001 (целая часть нормализованного числа не записывается и не сохраняется в памяти).

  • Смещенный порядок определяется как сумма нулевого смещенного порядка и порядка нормализованного числа.

В стандарте IEEE 754 нулевой смещенный порядок равен 12710 = 0111 11112.

Порядок нормализованного числа равен 610.

Рассчитываем смещенный порядок: 12710 + 610 = 13310.

Получаем шестой смещенный порядок равный 13310 = 1000 01012.

Е) Запись нормализованного числа в формате с плавающей точкой приведена в табл.2.18.1.

Табл.2.18.1. Число 125,5710 в формате с плавающей точкой

0

1

0

0

0

0

1

0

1

1

1

1

1

0

0

1

1

0

0

1

0

0

0

1

1

1

1

0

0

0

0

0

+

смещенный порядок

мантисса

Ответ: десятичное число 125,5710 в формате с плавающей точкой имеет вид:

0 10000101 111100110010001111000002.

Пример: Представить отрицательное вещественное десятичное число -125,5710 в 32-разрядном двоичном формате (float) с плавающей точкой. Отрицательные числа с плавающей точкой представляются прямым кодом:

Для представления отрицательного числа в формате с плавающей точкой выполняются следующие операции:

А) Перевод целой части десятичного числа, взятого по модулю: [12510] = 11111012.

Б) Перевод дробной части десятичного числа, взятого по модулю: [0,5710] = 0,100100012

В) Запись двоичного числа в формате с фиксированной точкой: 125,5710 = 1111101,100100012.

Г) Нормализация числа c фиксированной точкой.

Нормализованное число – это число, записанное в экспоненциальном виде. Нормализация выполняется сдвигом точки (запятой) вправо или влево до позиции, в которой в целой части остается одна значащая единица. В результате получается нормализованное двоичное число с порядком:

1111101,100100012 = 1,111101100100012 ∙ 26 (порядок числа равен 6).

Д) Определение знака, мантиссы и смещенного порядка

  • Знак числа -125,5710 отрицательный, поэтому в знаковом 31-ом разряде записывается 1 (единица).

  • Мантисса представляет собой дробную часть нормализованного числа: 11110110010001 (целая часть нормализованного числа не записывается и не сохраняется в памяти).

  • Смещенный порядок определяется как сумма нулевого смещенного порядка и порядка нормализованного числа.

В стандарте IEEE 754 нулевой смещенный порядок равен 12710 = 0111 11112.

Порядок нормализованного числа равен 610.

Рассчитываем смещенный порядок: 12710 + 610 = 13310.

Получаем шестой смещенный порядок равный 13310 = 1000 01012.

Е) Запись нормализованного числа в формате с плавающей точкой приведена в табл.2.18.2.

Табл.2.18.2. Число -125,5710 в формате с плавающей точкой

1

1

0

0

0

0

1

0

1

1

1

1

1

0

0

1

1

0

0

1

0

0

0

1

1

1

1

0

0

0

0

0

-

смещенный порядок

мантисса

Ответ: десятичное число -125,5710 в формате с плавающей точкой имеет вид:

1 10000101 111100110010001111000002.