Перейти к содержанию
100% локально

IEEE 754 конвертер

Преобразуйте десятичное число в его битовый паттерн IEEE 754 или биты обратно в число.

Входные данные
Выходные данные

IEEE 754 конвертер

Каждое число с плавающей точкой, которое хранит компьютер, на самом деле представляет собой бит знака, показатель степени и мантиссу, упакованные в соответствии с IEEE 754 — стандартом, который используют C, Java, Python и JavaScript для своих числовых типов. Вставьте десятичное число, и этот инструмент кодирует его в точный битовый паттерн; вставьте битовый паттерн обратно, и он декодирует его в число. Измените направление одним щелчком мыши.

Поддерживаются две точности: 32-битная одиночная (1 бит знака, 8 битов показателя, 23 бита мантиссы — float в C или f32 в Rust) и 64-битная двойная (1 + 11 + 52 — double в C и то, чем внутри является каждое число JavaScript). Битовый паттерн может быть записан как шестнадцатеричный или как простая строка нулей и единиц, с порядком байтов, установленным на big-endian или little-endian, чтобы соответствовать тому, как отладчик или дамп памяти отображает байты.

Включите «Показать знак / показатель степени / мантиссу», чтобы увидеть три поля разделёнными — самый быстрый способ понять, почему число кодируется таким образом. Включите «Показать фактическое сохранённое значение и ошибку округления», чтобы увидеть, что происходит с числом после сохранения: 3,14 не точно в любой точности, и инструмент показывает фактически сохранённое значение вместе с разницей между тем, что вы ввели и что сохраняет оборудование — причина, по которой сравнения чисел с плавающей точкой в коде дают сбой. Специальные значения — 0, -0, Infinity, -Infinity и NaN — все преобразуются в их определённые паттерны, по одному на строку, поэтому весь список преобразуется сразу.

Всё работает локально в вашем браузере, используя тот же DataView, который сам JavaScript engine использует для чтения и записи IEEE 754 чисел с плавающей точкой — нет серверной библиотеки с плавающей точкой и данные не покидают ваше устройство.

FAQ

Что такое IEEE 754?
Это стандарт, который определяет, как компьютеры хранят нецелые числа в двоичном формате: бит знака, показатель степени и мантиссу (дробь). Одиночная точность использует всего 32 бита, двойная точность — 64 — форматы, стоящие за float и double в C, f32 и f64 в Rust и каждым числом в JavaScript.
Почему 3,14 не декодируется точно обратно в 3,14?
Большинство десятичных дробей не могут быть представлены точно в двоичном формате, точно так же, как 1/3 не может быть написана точно в десятичном формате. Фактически сохранённое значение — это ближайшее значение, которое может удерживать формат — включите «Показать фактическое сохранённое значение», чтобы увидеть его и размер разницы.
Какая разница между одиночной и двойной точностью?
Одиночная точность (32 бита) имеет меньше места для мантиссы, поэтому округляет больше чисел и теряет больше цифр точности. Двойная точность (64 бита) точна для гораздо большего количества значений — это то, чем числа JavaScript уже являются внутри, поэтому прохождение двойного числа через этот инструмент никогда ничего не потеряет.
Что изменяет порядок байтов?
Это влияет только на то, как одни и те же биты группируются в байты для чтения или записи — big-endian записывает наиболее значительный байт первым, little-endian последним, соответствуя тому, как отладчик или шестнадцатеричный дамп отображает память на конкретной архитектуре. Само число и разбиение знака/показателя/мантиссы не изменяются.
Загружаются ли мои данные куда-то?
Нет. Конвертация работает полностью в вашем браузере, используя те же API двоичного чтения/записи, на которые опирается сам JavaScript engine — ничто из того, что вы вводите здесь, не отправляется на сервер.