Выберите число или готовое слово
Начальное значение — десятичное 0.1, формат binary32. Переход к hex меняет толкование текста, а не преобразует сам текст. Вставьте полное слово, расположив старший бит слева и согласовав длину с точностью.
Числа, битовые операции и единицы
Сравните десятичное число с сохранённым значением или прочитайте полное шестнадцатеричное либо двоичное слово.
Данные обрабатываются в этом браузере и не отправляются на сервер.
Десятичный ввод: точка и необязательная экспонента e/E. Hex: 8/16 цифр; двоичный: 32/64 бита. В словах допустимы 0x/0b, пробелы и табуляция.
Краткая запись · 9 / 17 значащих цифр
0.100000001
Нормальное
0.100000001490116119384765625
0.000000001490116119384765625
Прямое округление к выбранной точности: ближайшее, при равенстве — чётное. Смена точности или представления заново толкует текст. До 1024 символов; явная десятичная экспонента −4096…4096.
Разбор завершён.
Конвертер IEEE 754 помогает разобраться, почему короткое число в отладчике не объясняет результат сравнения. Полная десятичная запись показывает сохранённую дробь, а разность с исходным вводом — величину и направление отклонения.
Числа с плавающей точкой можно кодировать из десятичного текста или читать из готового слова. В первом случае возможно округление, во втором важно сохранить исходные биты. Для дампа памяти сначала проверьте разрядность и порядок байтов.
Конвертер IEEE 754 округляет исходную точную дробь отдельно для двух форматов. Для 0.1 в binary32 сохраняется 0.100000001490116119384765625. Binary64 подходит ближе, но тоже не даёт точного совпадения. Знак разности показывает, выше или ниже цели находится сохранённое число.
Слова 7FC00001 и 7FC00002 — тихие NaN с нагрузкой 1 и 2. Чтение исходных битов сохраняет эту разницу, знак и бит quiet. Это полезно при сравнении регистров: обычная числовая запись показала бы для обоих только NaN и скрыла важные детали.
Начальное значение — десятичное 0.1, формат binary32. Переход к hex меняет толкование текста, а не преобразует сам текст. Вставьте полное слово, расположив старший бит слева и согласовав длину с точностью.
Краткий вид использует 9 значащих цифр для binary32 и 17 для binary64. Точная запись сохраняет все цифры. Разность равна сохранённому значению минус ввод; отрицательный знак означает меньшее число, а не сбой анализа.
Пример открывает пять вариантов, включая отрицательный ноль и NaN с нагрузкой. Применение заменяет ввод, отмена возвращает его и результат. Автоматика ждёт 350 мс; без неё доступны кнопка разбора и Ctrl/Cmd + Enter.
Одинарная и двойная точность используют группы 1/8/23 и 1/11/52 бит. Записанная и эффективная экспоненты показаны отдельно, как и неявный старший бит. Для нормальных чисел он равен 1, для субнормальных — 0, поэтому нулевая экспонента требует иной формулы.
Десятичный текст разбирается как точная рациональная дробь и сразу округляется до целевого формата. Значение чуть выше середины 1.000000059604644775390625 правильно выбирает следующий float32. Предварительное преобразование в double могло бы стереть эту малую разницу.
Шестнадцатеричное представление и двоичная запись сохраняют все биты, в том числе сигнальные NaN. В отчёт входят исходный ввод, точность, поля, точное число и ошибка округления. Можно скопировать слово отдельно или сохранить полный текст для сравнения реализаций.
У одной десятой в знаменателе есть множитель пять, а конечная двоичная дробь имеет знаменатель в виде степени двойки. Поэтому двоичная запись 0.1 повторяется бесконечно и должна округляться. Вводите число с точкой и смотрите полную десятичную запись, чтобы увидеть действительное значение.
В binary32 хранятся 23 бита дроби плюс неявный бит нормальных чисел: всего 24 бита точности. В binary64 — 52 плюс один. Поле экспоненты расширяется с 8 до 11 бит. Диапазон становится шире, а промежутки между числами меньше, но 0.1 всё равно не представляется точно.
Для нормального числа знак определяет положительное или отрицательное значение, из записанной экспоненты вычитается 127 либо 1023, а перед дробью добавляется неявная 1. Нулевая экспонента использует субнормальную трактовку; все единицы означают бесконечность или NaN.
Все единицы в экспоненте и нулевая дробь дают бесконечность; ненулевая дробь даёт NaN. Ноль со знаком имеет нулевые экспоненту и дробь, но сохраняет бит знака. Поля quiet и нагрузки позволяют различать несколько битовых шаблонов внутри класса NaN.
Выберите hex и подходящую точность, затем вставьте полное слово. Например, 3F800000 в binary32 даёт ровно 1. Это интерпретация тех же битов как числа с плавающей точкой, а не преобразование шестнадцатеричного целого 1065353216 в float.
Результат вызывает вопросы?
Конвертер IEEE 754 позволяет проверить слово из дампа или дробь возле границы округления. Меняйте одно условие за раз и сохраняйте отчёт после обновления результата.