Редактирование: Представление вещественных чисел

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 54: Строка 54:
 
== Нормальная и нормализованная форма ==
 
== Нормальная и нормализованная форма ==
  
'''Нормальной формой''' (англ. ''normal form'') числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) в десятичной системе находится на полуинтервале <tex>[0; 1)</tex>. Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, <tex>0{,}0001</tex> можно записать в 4 формах — <tex>0{,}0001 \times 10</tex><sup><tex>0</tex></sup>, <tex>0{,}001 \times 10</tex><sup><tex>−1</tex></sup>, <tex>0{,}01 \times 10</tex><sup><tex>−2</tex></sup>, <tex>0{,}1 \times 10</tex><sup><tex>−3</tex></sup>), поэтому распространена также другая форма записи — '''нормализованная''' (англ. ''normalized''), в которой мантисса десятичного числа принимает значения от <tex>1</tex> (включительно) до <tex>10</tex> (не включительно), а мантисса двоичного числа принимает значения от <tex>1</tex> (включительно) до <tex>2</tex> (не включительно). То есть в мантиссе слева от запятой до применения порядка находится ровно один знак. В такой форме любое число (кроме <tex>0</tex>) записывается единственным образом. Ноль же представить таким образом невозможно, поэтому стандарт предусматривает специальную последовательность битов для задания числа <tex>0</tex> (а заодно и некоторых других [[#Особые значения чисел с плавающей точкой|полезных чисел]], таких как <tex>-\infty</tex> и <tex>+\infty</tex>).
+
'''Нормальной формой''' (англ. ''normal form'') числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) в десятичной системе находится на полуинтервале <tex>[0; 1)</tex>. Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, <tex>0{,}0001</tex> можно записать в 4 формах — <tex>0{,}0001</tex> \times <tex>10</tex><sup><tex>0</tex></sup>, <tex>0{,}001</tex> \times <tex>10</tex><sup><tex>−1</tex></sup>, <tex>0{,}01</tex> \times <tex>10</tex><sup><tex>−2</tex></sup>, <tex>0{,}1</tex> \times <tex>10</tex><sup><tex>−3</tex></sup>), поэтому распространена также другая форма записи — '''нормализованная''' (англ. ''normalized''), в которой мантисса десятичного числа принимает значения от <tex>1</tex> (включительно) до <tex>10</tex> (не включительно), а мантисса двоичного числа принимает значения от <tex>1</tex> (включительно) до <tex>2</tex> (не включительно). То есть в мантиссе слева от запятой до применения порядка находится ровно один знак. В такой форме любое число (кроме <tex>0</tex>) записывается единственным образом. Ноль же представить таким образом невозможно, поэтому стандарт предусматривает специальную последовательность битов для задания числа <tex>0</tex> (а заодно и некоторых других [[#Особые значения чисел с плавающей точкой|полезных чисел]], таких как <tex>-\infty</tex> и <tex>+\infty</tex>).
 
Так как старший двоичный разряд (целая часть) мантиссы вещественного числа в нормализованном виде всегда равен «<tex>1</tex>», то его можно не записывать, сэкономив таким образом один бит, что и используется в стандарте IEEE 754. В позиционных системах счисления с основанием большим, чем <tex>2</tex> (в троичной, четверичной и др.), этого замечательного свойства нет (ведь целая часть там может быть не только единицей).
 
Так как старший двоичный разряд (целая часть) мантиссы вещественного числа в нормализованном виде всегда равен «<tex>1</tex>», то его можно не записывать, сэкономив таким образом один бит, что и используется в стандарте IEEE 754. В позиционных системах счисления с основанием большим, чем <tex>2</tex> (в троичной, четверичной и др.), этого замечательного свойства нет (ведь целая часть там может быть не только единицей).
 +
  
 
== Типы чисел с плавающей точкой (по IEEE 754) ==
 
== Типы чисел с плавающей точкой (по IEEE 754) ==
Строка 425: Строка 426:
 
  |Half precision||-||6,10&times;10<sup>-5</sup>..65504||11||16
 
  |Half precision||-||6,10&times;10<sup>-5</sup>..65504||11||16
 
  |-
 
  |-
  |Single presicion||float||-3,4&times;10<sup>38</sup>..3,4&times;10<sup>38</sup>||23||32
+
  |Single presicion||float||3,4&times;10<sup>-38</sup>..3,4&times;10<sup>38</sup>||23||32
 
  |-
 
  |-
  |Double precision||double||-1,7&times;10<sup>308</sup>..1,7&times;10<sup>308</sup>||53||64
+
  |Double precision||double||1,7&times;10<sup>-308</sup>..1,7&times;10<sup>308</sup>||53||64
 
  |-
 
  |-
  |Extended precision||На некоторых архитектурах (например в сопроцессоре Intel) long double||-3,4&times;10<sup>4932</sup>..3,4&times;10<sup>4932||65||80
+
  |Extended precision||На некоторых архитектурах (например в сопроцессоре Intel) long double||3,4&times;10<sup>-4932</sup>..3,4&times;10<sup>4932||65||80
 
  |}
 
  |}
  
Строка 540: Строка 541:
 
* <tex>0\times\infty= NaN</tex>
 
* <tex>0\times\infty= NaN</tex>
  
* <tex>\frac{\pm0}{\pm0} = NaN</tex>
+
* <tex>\frac{\pm0}{\pm0}=\frac{\pm\infty}{\pm\infty} = NaN</tex>
 
 
* <tex>\frac{\pm\infty}{\pm\infty} = NaN</tex>
 
  
 
* <tex>\sqrt{x} = NaN</tex>, где <tex>x<0</tex>
 
* <tex>\sqrt{x} = NaN</tex>, где <tex>x<0</tex>

Пожалуйста, учтите, что любой ваш вклад в проект «Викиконспекты» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Викиконспекты:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос (подробнее):

Отменить | Справка по редактированию (в новом окне)

Шаблон, используемый на этой странице: