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-бітний двійковий рядок, і інструмент переінтерпретує ці точні біти як значення з рухомою комою.

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