Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Вещественные числа (числа с плавающей запятой).






ПК имеет несколько типов вещественных чисел, различающихся количеством разрядов, отведенных для мантиссы и порядка числа. Мы будем рассматривать тип float для 32-х разрядных процессоров..

Тип float по стандарту IEEE 754 - это двоичное число, занимающее 4 байта памяти. Нумерация двоичных разрядов 31, 30,..., 1, 0.

Нормальной формой числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) в десятичной системе находится на полуинтервале [0; 1). Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно. Например, 0, 0001 можно записать в 4 формах:

0, 0001 = 0, 0001× 100, где 0, 0001 - мантисса, а порядок равен 0 (степень основания системы счисления 10)

0, 0001 = 0, 001× 10− 1

0, 0001 = 0, 01× 10− 2

0, 0001 = 0, 1× 10− 3

Поэтому в указанном стандарте применяется другая форма записи — нормализованная, в которой мантисса десятичного числа принимает значения от 1 (включительно) до 10 (не включительно), а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно). То есть в мантиссе слева от запятой до применения порядка находится ровно один знак. В такой форме любое число (кроме 0) записывается единственным образом. Ноль же представить таким образом невозможно, поэтому стандарт предусматривает специальную последовательность битов для задания числа 0 (а заодно и некоторых других полезных чисел, таких как и ).

Так как старший двоичный разряд (целая часть) мантиссы вещественного числа в нормализованном виде всегда равен «1», то его можно не записывать, сэкономив таким образом один бит, что и используется в стандарте IEEE 754. В позиционных системах счисления с основанием большим, чем 2 (в троичной, четверичной, десятичной и др.), этого замечательного свойства нет (ведь целая часть там может быть не только единицей).

В указанном формате float старший 31-й разряд используется для хранения знака числа «0»-знак «+», «1» - знак «-». Один байт (разряды 23-30) используются для хранения порядка. Порядок записан со сдвигом - 127. То есть, чтобы получить актуальное значение порядка нужно вычесть из него сдвиг. Если записан порядок 243, то в самом деле порядок числа составляет:

P = 243 – 127 = 116.

Младшие 23 бита числа (разряды 0 – 22) используются для записи дробной части мантиссы. Целая часть, которая всегда равна «1» в памяти не хранится. Она добавляется при обработке данного числа.

 

Знак Порядок (8 бит) Мантиса (23+1 бита)
                      1,                                            
         
                                                                 

 

Максимальное значение числа формата float:

 

Максимальному смещенному порядку 111111102 = 25510 соответствует реальный порядок числа рmax = 254 – 127 = 127 (порядок 111111112 зарезервирован для представления и ).

Максимальное значение мантиссы

1, 1111 1111 1111 1111 1111 1112 = 10, 0000 0000 0000 0000 0000 0002

- 0, 0000 0000 0000 0000 0000 0012,

что соответствует в 10 с.с. 2 – 1× 2-23 ≈ 1.99999988.

Таким образом, максимальное число в формате float получается равным:

 

1.99999988 × 2127 ≈ 3.402823 × 1038


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.015 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал