Студопедия  
Главная страница | Контакты | Случайная страница

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

Представление вещественных чисел в памяти ПК

Читайте также:
  1. A) Постоянно находится в памяти.
  2. Double сохраняется в памяти 15-16 десятичных знаков.
  3. III. Распределение виртуальной памяти
  4. LINUX|| Структура памяти процесса в ОС Linux.
  5. LINUX|| Управление памятью в ОС Linux. Карта памяти
  6. n6. Перевод чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную систему счисления.
  7. Remembrance Day -День памяти.
  8. Swap MACRO a,b; a,b - параметры макро (ячейки памяти)
  9. Алгебраические формы представления целых знаковых двоичных чисел в компьютере и операции с этими числами
  10. Алгебраическое представление двоичных чисел

В С++есть два вещественных типа: float и double. Операции

вещественной арифметики выполняет сопроцессор (FPU).

Значение, полученное в сопроцессоре, преобразуется в тип float или double и хранится в этом типе.

Вещественное число представляется в виде (в IBM PC):

 

x=(-1)S * 1.f * 2p

Здесь S – знак(‘+’ - 0/’-’ - 1), 1.f – мантисса числа, p – порядок.

 

В памяти хранится: машинный порядок P=P+д; д зависит от формата и кол-ва разрядов под порядок, 1 в целой части мантиссы в форматах float и double не хранится, но подразумевается, в сопроцессоре 1 в целой части мантиссы хранится.

 

 

S ß--- P’-> <- ---- --f-- ------ ------ ------ ---à

 

K

 

Под машинный порядок p’ отводится K разрядов: в эти к разрядов входит максимальное число max, д=max/2, половина значений p’ соответствуют положительному истинному порядку p, половина отрицательному. P’ всегда положительный.

K=8 (float); K=11 (double); K=15(long double);

max=255 max=2047 max=32767

соответственно

д=127( float ); д=1023( double ); д=16383( long double );

p’= p+127 p’= p+1023 p’= p+16383

Для чисел X: 0< p’ <max;

 

Eсли P’=0 и f=0, то X=0.

Eсли P’=max, то данное X не является числом, а представляет некоторое специальное значение:

+бесконечность: 0 11...11 00.... 00

- бесконечность: 1 11...11 00.... 00

P’ f

Не числа: (NaN, Not a Number): P’=11... 11, а f≠0

 

Неопределённость: P’=11... 11, а f=1000... 00

 

Денормализованные числа: 0/1 P’=000.... 00, а f≠0

 

Положение точки не фиксируется, оно определяется порядком P числа, т.е. точка как бы плавает по разрядной сетке: для разных чисел её место может быть разным. Такая форма представления получила название представления с плавающей точкой. Код числа в этом случае называют машинным кодом представления с плавающей точкой. Характеристики машинного слова: МС {n, k, m, q, E=2}, Е не хранится, оно выбирается при конструировании процессора, также как и способ представления порядка P’.

В дальнейшем будем рассматривать тип double

Пример. X=3.5 = 11.12 = (-1)0 *1.11*21

P’ = 1+1023 =1024

p’=1024 f=0.11

             

7 6 5 4 3 0

16-ый код: 40 0С 00 00 00 00 00 00

Число –3.5: С0 0С 00 00 00 00 00 00

Диапазон чисел, представимых в формате с плавающей точкой (тип double ): |X|min <=|X|<=|X|max и X=0 1<=P’<=2046

|M|min*2pmin <=|X| <=|M|max*2pmax и X=0

1*2-1022<=|X| <=(2-2-52)*21023 и X=0

10k<=|X| <=10L lg2=0.30103

k= –1022*lg 2= –307.65266= -308+0.34734

L= 1024* lg 2=1024*0.30103=308.25472

2.2*10-308<=|X| <=1.7*10308 и X=0

__[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] _____|_____[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\]______

Xmax -Xmin 0 Xmin Xmax

Точность чисел, представленных в формате с плавающей точкой: часто вместо числа Х в МС хранится его приближение Х*. Погрешность вносится из-за хранения приближенного значения мантиссы.

Абсолютная погрешность числа Х*: |X – X*| = ∆(Х*) =|MX –MX*|*2px= 2-52*2px т.е. абсолютная погрешность числа зависит от порядка числа.Обычно для формата с плавающей точкой определяют относительную погрешность Х* : d(Х*)

Для пользователя более важным является практический вопрос: сколько значащих цифр десятичного представления числа гарантированно сохраняются при таком формате хранения числа. Есть приближенное правило для определения этого количества К цифр при q=2:

m двоичных разрядов мантиссы соответствуют К десятичным цифрам: К»[m / 3.32]; Для типа double К=[53/3.32]=15.96, т.е. для значения типа




Дата добавления: 2014-12-15; просмотров: 35 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав