부동 소수점 숫자를 fixed point integerQ16.16int (number * 0x10000)으로 인코딩 할 때 정밀도를 잃지 않고 표현할 수있는 부동 소수점 범위는 무엇입니까?Q16.16 정수로 표현되는 float의 범위는 무엇입니까?
0
A
답변
2
범위는 32767에서 -32768까지 최대 부분 부분을 더하거나 뺍니다. 따라서
32767 + 65535/65536 to - 32768 - 65535/65536.
그러나 정밀도는 범위와 다릅니다. 최대 31 비트의 정밀도를 얻었습니다.
1
당신이 Q15.16를 나타내는 2의 보수 32 비트 정수를 사용하는 가정하면, 정수의 범위는 [2^31-1, -2^31]
또는 [2147483647, -2147483648]
이며, 규모는 2^-16
또는 1/65536
이다. 따라서 고정 소수점 값의 범위는 [2147483647/65536, -2147483648/65536]
또는 약 [32767.99998, -32768]
입니다.
65537/65535 대신 65535/65536을 사용하셨습니까? (후자는> 1)? – njuffa
예, 수정했습니다. –