2016-10-10 1 views
0

가정하자 나는이 같은 부동 소수점 비트 표현 :지수가 부동 소수점 subnormals에 대해 계산되는 방법

0 0000000000 00000000000000000000000000000000000000000000000000001 

나는 모두 0의 지수와 부동 소수점 숫자가 subnormals 또는 비정규라는 것을 알고있다. 지수는 편차가 고려되는 일반적인 부동 소수점 수와 다르게 계산됩니다.

그렇다면 하위 지수에 대한 지수는 어떻게 계산됩니까?

답변

0

지수가 다르게 계산되지 않습니다. 유일한 차이 subnormals은 A가 1을 선도하는 (그래서 당신의 예 0.0000···0001 * 2^-1022 대신 1.0000···0001 * 2^-1022 동일 대신 0을 선도하고있다.

당신이 이에 상응하는 가수를 찾고이 되도록 지수입니다 경우 1 선두 가수의 앞자리 0을 센다. 원래의 지수에서 결과를 빼고 그 결과에 의해 가수를 왼쪽으로 옮긴다. (그래서 0.000000101 * 2^-50은 6 + 1이되고 1.01 * 2^-57이된다.)

+0

이 질문은 [이 답변] (http://stackoverflow.com/a/39945671/2545680)의 지수가 '-1022'로 제안 된 것입니다. 따라서 지수는 무엇입니까? –

+1

이것은 약간 오해의 소지가있다 : IEEE 754 바이너리 형식의 양수 정상 수의 경우이 값을'1 * 2^'로 해석한다. 그러나 양수의 비정규 또는 0의 경우, 대신에 '0 * 2^'을 원할 것입니다 (물론 exponent_bits는이 경우 값이 0입니다). 이 의미에서, 지수 *는 다르게 계산됩니다. ('binary64'의 경우 최소 표현 가능 값은 '0.0000 ... 0001 * 2^(- 1022)'또는'2^(- 52) * 2^(- 1022) = 2^(- 1074)'입니다. .) –

+0

그가 말한 것. subnormals에 대한 특별 규칙을 잊어 버렸습니다. – Sneftel