thenagood

숫자에서 비트까지, 계산 과정을 한눈에

고정 소수점 계산기

십진수와 이진 고정소수점(Q형식)을 변환하고, 저장되는 값과 표현 오차를 확인하세요.

소수부 비트 수 F는 이진 소수점의 위치입니다. IEEE 754 float32·float64와 십진 소수 자릿수 반올림은 이 도구의 지원 범위에 포함되지 않습니다.

변환할 값과 형식

계산 도구를 준비하고 있습니다. 결과가 표시되지 않으면 JavaScript를 지원하는 최신 브라우저에서 다시 열어 주세요. 아래 검산 예제는 바로 읽을 수 있습니다.

고정소수점 변환 설정
변환 방향

예: 0.1, -0.5, 1e-3. 입력한 십진수를 정확히 해석합니다.

총 2~64비트. 부호 있음에서는 최상위 비트가 음의 가중치를 가집니다.

소수부 0~15비트. 이진 소수부 비트 수를 지정합니다.

반올림·범위 초과 설정

동률의 짝수는 배율을 곱한 뒤의 정수입니다. 음수에서 0 방향과 내림은 다릅니다.

포화·랩은 값을 바꿉니다. 원래 입력의 범위 이탈은 별도 경고하며, 넘침 처리는 반올림한 정수를 기준으로 적용합니다.

입력값은 브라우저 안에서 계산합니다. URL·서버·분석 서비스에 전송하거나 저장하지 않습니다.

16비트 · 소수부 15비트 · 부호 있음

Q1.15 (정수부에 부호 비트 포함) · 제외 표기: Q0.15

표현 가능한 범위
-1 ~ 0.999969482421875
표현 간격 (1 LSB)
0.000030517578125

결과와 검산

값과 형식을 입력하면 비트 표현과 계산 과정이 여기에 표시됩니다.

직접 확인하는 검산 예제

예제를 누르면 입력과 형식이 함께 바뀝니다. 모든 예제는 ‘동률이면 짝수’ 반올림을 사용합니다.

고정소수점과 Q형식 읽는 법

저장되는 것은 정수입니다

소수부가 F비트라면 복원값 = 저장 정수 ÷ 2F입니다. 예를 들어 16비트·F15에서 0.5는 정수 16384, 비트 패턴 0x4000으로 저장됩니다. 소수점이 비트열에 별도로 저장되는 것은 아닙니다.

Q1.15와 Q0.15의 차이

Q 표기는 정수부에 부호 비트를 세는 관례에 따라 달라집니다. 이 도구는 총 비트 수 W·소수부 비트 수 F·부호를 기준으로 계산하고 두 표기를 함께 안내합니다. Q15처럼 소수부 길이만 표기하는 경우도 있으므로 비트 수를 함께 확인하세요.

0.1에 오차가 생기는 이유

0.1을 정확히 입력해도 이진 고정소수점의 일정한 간격에 꼭 맞지는 않습니다. F15에서는 3276.8을 정수 3277로 반올림하므로 복원값이 조금 커집니다. 여기서 오차는 복원값 − 원래 입력값입니다.

−1과 0xFF는 어떻게 같을까요?

8비트·부호 있음·F0에서 0xFF의 비트 패턴을 부호 없이 읽으면 255지만, 2의 보수 저장 정수는 −1입니다. 역변환의 ‘저장 정수’ 칸에는 −1을, ‘16진수 비트 패턴’에는 0xFF를 입력합니다.

반올림과 범위 초과를 더 알아보기

가장 가까운 두 값이 같은 거리면 배율을 곱한 정수가 짝수가 되는 값을 고릅니다. 4비트·F2에서 0.125는 0으로, 0.375는 0.5로 변환됩니다. 음수 −0.3을 변환하면 0 방향은 −0.25, 내림은 −0.5입니다.

반올림한 정수가 범위를 넘으면 기본은 오류입니다. 포화는 경계값으로 제한하고, 랩은 2W를 기준으로 순환시킵니다. 4비트·F2에서 1.875는 포화 시 1.75, 랩 시 −2가 됩니다. 두 경우 모두 원래 값과 달라집니다.

지원 범위와 입력 제한

이진 소수점 스케일링만 지원합니다. 총 비트 수는 2~64, 소수부는 부호 있음에서 0~W−1, 부호 없음에서 0~W입니다. 이는 이 도구의 지원 범위이며 모든 고정소수점 형식의 수학적 한계는 아닙니다.

십진 입력은 200자 이내, 숫자 120자리 이내, 지수 −100~100입니다. 쉼표·수식·NaN·Infinity는 받지 않습니다. 2진·16진 원시값은 지정한 비트폭을 넘으면 잘라내지 않고 거절합니다. 역변환에는 반올림·포화·랩이 적용되지 않습니다.

짧은 2진·16진 패턴은 왼쪽을 0으로 채워 W비트로 읽습니다. 부호 있음·16비트·F0에서 FF는 255, FFFF는 −1입니다. 입력 길이에 따라 부호를 확장하지 않습니다. 십진 저장 정수의 범위는 부호 설정에 따르며, 부호 없음에서 음수 저장 정수는 오류입니다.

사칙연산, 바이트 순서 변환, IEEE 754 해석은 지원하지 않습니다. 설정과 값은 브라우저에 저장하지 않으며 페이지를 새로 열면 기본 예제로 돌아갑니다.

계산 근거와 확인 방법

제작·유지: TheNaGood. 정수·분수 연산으로 계산하며 아래 정의에 따라 범위·반올림·2의 보수를 확인합니다. 특정 하드웨어나 컴파일러의 모든 동작을 대신하지 않으므로 실제 장치의 형식과 설정도 함께 확인하세요.

결과가 다르면 먼저 W·F·부호·반올림·범위 초과 처리를 맞춰 비교하세요. ‘설정과 결과 함께 복사’로 동일한 조건을 남길 수 있습니다.