Число двойной точности

Материал из Википедии — свободной энциклопедии
Число двойной точности
Изображение
Предыдущее по порядку Число одинарной точности
Следующее по порядку Число четверной точности
Размер данных 64 b
Орган по стандартизации Институт инженеров электротехники и электроники

Число́ двойно́й то́чности (Double precision, Double) —

IEEE 754
.

Числа с плавающей запятой (двойной/одинарной/четверной точности) поддерживаются сопроцессором (до

FPU
 — Floating Point Unit, буквально «модуль плавающей запятой»). В компьютерах, которые имеют 64-разрядные числа с плавающей запятой, большинство чисел хранятся в двойной точности, поскольку использование чисел одинарной точности обеспечивает почти такую же производительность, но все вычисления в FPU осуществляются в 80-битном (расширенном, extended) представлении.

Одним из первых языков программирования, позволявшим использовать числа одинарной и двойной точности с плавающей запятой, был Фортран.

Числа двойной точности с плавающей запятой эквивалентны по точности числу с 15-17 значащими десятичными цифрами (в среднем 16,3) в диапазоне примерно от 10−308 до 10308.

Знак
(11 бит)
Порядок
(52 бита)
Мантисса
63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0

Окончательное значение числа равняется ±знак · (1+мантисса/ 252) × 2порядок − 1023. Знак 0 соответствует положительным числам, знак 1 отрицательным. Старший бит мантиссы, который всегда равен единице, опускается. Порядок 0 записывается как 1023.

Существуют также

NaN
.

Примеры чисел двойной точности

  • 0x 3ff0 0000 0000 0000 = 1
  • 0x 3ff0 0000 0000 0001 ≈ 1,0000000000000002 (наименьшее число, большее 1)
  • 0x 3ff0 0000 0000 0002 ≈ 1,0000000000000004
  • 0x 4000 0000 0000 0000 = 2
  • 0x c000 0000 0000 0000 = –2
  • 0x 0000 0000 0000 0001 = 2–1022–52 ≈ 4,9406564584124654×10−324 (минимальное денормализованное положительное число двойной точности)
  • 0x 000f ffff ffff ffff = 2–1022– 2–1022–52 ≈ 2,2250738585072009×10-308 (максимальное денормализованное положительное число двойной точности)
  • 0x 0010 0000 0000 0000 = 2–1022 ≈ 2,2250738585072014×10−308 (минимальное нормализованное положительное число двойной точности)
  • 0x 7fef ffff ffff ffff = (1 + (1 – 2–52))×21023 ≈ 1,7976931348623157×10308 (максимальное число двойной точности)
  • 0x 0000 0000 0000 0000 = 0
  • 0x 8000 0000 0000 0000 = –0
  • 0x 7ff0 0000 0000 0000 = Infinity
  • 0x fff0 0000 0000 0000 = −Infinity
  • 0x 7fff ffff ffff ffff = NaN
  • 0x 3fd5 5555 5555 5555 ≈ 1/3

См. также

Ссылки