AZ Tools

IEEE 754 부동소수점 변환기 (32 & 64비트)

변환

부동소수점 수는 부호 비트, 바이어스된 지수, 가수(fraction)로 저장되며, 입력한 값과 실제 저장된 값의 차이가 수많은 반올림 버그의 원인입니다. 이 변환기는 임의의 십진수를 float32(단정밀도, 1+8+23비트, 바이어스 127)와 float64(배정밀도, 1+11+52비트, 바이어스 1023) 모두로 정확한 IEEE 754 표현으로 보여 줍니다: 색상별 비트 문자열, hex 워드, 바이어스 없는 지수와 가수, 값 범주(정규·비정규·0·무한·NaN), 그리고 반올림 후 실제 저장된 값. 반대로도 동작합니다 — 8자리 또는 16자리 hex 워드를 붙여넣으면 디코딩된 수와 전체 분해를 보여 줍니다. 직렬화·셰이더·임베디드 코드·GPU 버퍼 디버깅과 '왜 0.1 + 0.2 != 0.3?' 같은 질문에 유용합니다. 특수 입력 Infinity, -Infinity, NaN도 받습니다. 모든 처리는 로컬에서 실행되며 업로드되지 않습니다.

float32 (single)정규
00111101110011001100110011001101
0x3dcccccd
부호
0 (+)
지수
123 (2^-4)
유효숫자
1.10011001100110011001101
저장값
0.10000000149011612

반올림됨 — float32는 이 값을 정확히 저장할 수 없습니다.

float64 (double)정규
0011111110111001100110011001100110011001100110011001100110011010
0x3fb999999999999a
부호
0 (+)
지수
1019 (2^-4)
유효숫자
1.1001100110011001100110011001100110011001100110011010
저장값
0.1
부호 지수 가수

float32 = 부호 1 + 지수 8 + 가수 23비트; float64 = 1 + 11 + 52. 지수 바이어스는 127 / 1023.

사용법

  1. '십진수 → 비트'에서 수(예: 0.1, -3.14, 1e10, Infinity, NaN)를 입력해 float32·float64 둘 다 확인.
  2. 부호 / 지수 / 가수 분할, hex 워드, 저장된 값을 읽으세요. float32가 반올림했으면 안내가 표시됩니다.
  3. '비트 → 십진수'로 전환하고 정밀도를 고른 뒤 hex 워드를 붙여넣어 수로 디코딩.

자주 묻는 질문

저장된 값이 입력과 다른 이유는?
대부분의 십진 분수는 이진 부동소수점으로 정확히 표현할 수 없습니다. 도구는 가장 가까운 표현 가능한 값을 보여 줍니다 — 예를 들어 float32의 0.1은 실제로 0.100000001490116119384765625입니다. 저장된 float32 값이 입력과 다르면 반올림 안내가 표시됩니다. float64는 JavaScript가 이미 쓰는 값과 같습니다.
색상별 비트의 의미는?
빨강은 부호 비트(0 양수, 1 음수), 파랑은 지수(바이어스됨: 2의 거듭제곱을 얻으려면 float32는 127, float64는 1023을 뺌), 초록은 가수(fraction)입니다. 정규 수의 유효숫자는 1.가수이고, 비정규 수는 최소 지수에서 0.가수입니다.
무한·NaN·0은 어떻게 표시되나요?
지수가 전부 1이고 가수가 0이면 ±무한; 지수가 전부 1이고 가수가 0이 아니면 NaN; 지수와 가수가 전부 0이면 ±0(-0의 부호 비트가 구별됨); 지수가 전부 0이고 가수가 0이 아니면 비정규 수입니다. 각 카드에 범주가 표시됩니다.
디코딩은 어떤 hex 형식을 기대하나요?
원시 비트의 빅엔디언 hex입니다: float32는 8자리(예: 3f800000 = 1.0), float64는 16자리(예: 3ff0000000000000 = 1.0). 선행 0x와 공백은 무시되며, 짧은 입력은 왼쪽이 0으로 채워집니다.

관련 도구