Alterna · учебный материал

IEEE 754: single и double

IEEE 754: float32 и float64 подробно. Калькулятор single+double, особые значения (NaN, Inf, денормализованные), сравнение типов.

Что в этом материале

Содержание и основные понятия

← Вернуться к оглавлению
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)
Битовая схема (32 бит):
04
Потеря точности: single vs double
Убедись наглядно: 0.1 + 0.2 ≠ 0.3
⚖️
Интерактив 3: Сравнение single vs double — точность
A
Операция
B
Введи 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 за каждый правильный ответ.

Структурная карта учебников