← Вернуться к оглавлению
Alterna · глава 30 · страница 30.2

IEEE 754: single и double

Стандарт представления вещественных чисел. Подробно, с калькулятором, визуализатором битов и особыми значениями.

IEEE 754 — стандарт, по которому работают все современные CPU/GPU. Числа хранятся в виде знака, смещённого порядка и мантиссы. Это даёт огромный диапазон ценой точности.

ФГОСФОПЕГЭ №14углубл.
01

Структура IEEE 754

Знак, порядок, мантисса

Вещественное число хранится в виде: (−1)s × 1.M × 2(E−bias)

где s — знак, M — дробная часть мантиссы (всегда 1.M, т.к. мантисса нормализована), E — хранимый порядок со смещением.

float32 (32 бит) s порядок (8 бит) мантисса (23 бит) 1 бит bias=127 скрытая 1 не хранится = 32 бит

single (float32, 32 бит)

  • Знак s: 1 бит
  • Порядок E: 8 бит (bias = 127)
  • Мантисса M: 23 бит
  • Точность: ~7 десятичных цифр
  • Диапазон: ~10±38

double (float64, 64 бит)

  • Знак s: 1 бит
  • Порядок E: 11 бит (bias = 1023)
  • Мантисса M: 52 бит
  • Точность: ~15 десятичных цифр
  • Диапазон: ~10±308
Скрытая единица Поскольку первая цифра нормализованной двоичной мантиссы всегда 1 (например, 1.1001₂), её не хранят — это «скрытый бит» (hidden bit). Экономим 1 разряд, удваивая точность.
02

Калькулятор single и double с битовой схемой

🔬Интерактив 1: Число → IEEE 754 (single + double) с цветовой разметкой
single (32 бит):
Знак Порядок Мантисса
Введи число и нажми «Перевести».
03

Особые значения IEEE 754

Кликни на карточку — увидишь битовую схему

Интерактив 2: Визуализатор особых значений (NaN, Inf, denorm, ±0)
04

Потеря точности: single vs double

Убедись наглядно: 0.1 + 0.2 ≠ 0.3

⚖️Интерактив 3: Сравнение single vs double — точность
Введи A, B и нажми «Вычислить».
Относительная погрешность single:
точно7 цифрбольшая погрешность
Классический пример 0.1 + 0.2 в большинстве языков = 0.30000000000000004. Это не баг, а фича IEEE 754. Число 0.1 в двоичной — бесконечная дробь, как 1/3 в десятичной. float/double обрезают её до конечного числа бит.
🎯

Мини-тест: 5 вопросов

XP: 0 / 100
🧩Быстрый тест по теме

Проверь себя! 5 вопросов, 20 XP за каждый правильный ответ.