UTILS.
100% в браузере
💾

Конвертер IEEE-754 с плавающей запятой

Конвертируйте десятичное число в/из его битового шаблона IEEE-754 одинарной (32-бит) или двойной (64-бит) точности и разберите поля знака, порядка и мантиссы.

Введите число или битовый шаблон выше.

Об этом инструменте

Конвертер IEEE-754 с плавающей запятой показывает, как именно число хранится в памяти как 32-битное число одинарной точности или 64-битное число двойной точности, и может обратно превратить сырой битовый шаблон в его десятичное значение. Он использует типизированные массивы JavaScript (Float32Array / DataView), поэтому битовый шаблон — это подлинное аппаратное представление, а не приближение.

В прямом режиме он сообщает шаблон как шестнадцатеричный и как двоичный, разделённый на три поля: бит знака, порядок (8 бит со смещением 127 для float32, 11 бит со смещением 1023 для float64) и мантиссу (23 или 52 бита). Он также декодирует несмещённый порядок и классифицирует значение как нормальное, субнормальное, ноль, бесконечность или NaN. Что важно, он выводит точное сохранённое значение, считанное обратно из битов — которое для float32 часто отличается от того, что вы ввели, делая ошибку округления с плавающей запятой видимой. Например, 0.1 не хранится точно ни в одной точности.

В обратном режиме вы вставляете hex-шаблон (с 0x или без) или двоичную строку полной ширины, и он переинтерпретирует эти биты как число с плавающей запятой и показывает результирующее десятичное значение плюс ту же разбивку по полям. Всё выполняется локально в вашем браузере. Это незаменимый инструмент для понимания округления, сравнения одинарной и двойной точности и изучения специальных кодировок для ±0, ±∞ и NaN.

Часто задаваемые вопросы

Почему сохранённое значение отличается от того, что я ввёл?
Большинство десятичных дробей нельзя представить точно в двоичной плавающей запятой, поэтому хранится ближайшее представимое значение. Конвертер считывает биты обратно и показывает это точное сохранённое значение, что раскрывает ошибку округления — особенно в 32-битной одинарной точности.
Как расположены поля?
Float32 использует 1 бит знака, 8 бит порядка (смещение 127) и 23 бита мантиссы; float64 использует 1 бит знака, 11 бит порядка (смещение 1023) и 52 бита мантиссы. Несмещённый порядок равен сырому порядку минус смещение.
Как кодируются ноль, бесконечность и NaN?
Нулевой порядок с нулевой мантиссой — это ±0 или субнормальное, если мантисса ненулевая. Порядок из всех единиц означает ±бесконечность, когда мантисса нулевая, и NaN, когда она ненулевая. Инструмент помечает каждую категорию.
Могу ли я перейти от битового шаблона обратно к числу?
Да. Переключитесь в обратный режим и вставьте 8-hex-значный (float32) или 16-hex-значный (float64) шаблон или полную 32- или 64-битную двоичную строку, и инструмент переинтерпретирует эти точные биты как значение с плавающей запятой.

Больше инструментов