表示为 Q16.16 整数的浮点数的范围是多少?
What is the range of a float represented as a Q16.16 integer?
当使用 int(number * 0x10000) 将浮点数编码为 fixed point integer Q16.16 时,什么是可以在不损失精度的情况下表示的浮点数范围?
范围是 32767 到 -32768 加上或减去最大的小数部分。所以
32767 + 65535/65536 到 - 32768 - 65535/65536。
然而,精度与范围不同。您的精度高达 31 位。
假设你用一个2的补码32位整数来表示一个Q15.16,整数的取值范围是[2^31-1, -2^31]
或[2147483647, -2147483648]
,小数位数是2^-16
或1/65536
。因此定点值的取值范围是[2147483647/65536, -2147483648/65536]
或大约[32767.99998, -32768]
.
当使用 int(number * 0x10000) 将浮点数编码为 fixed point integer Q16.16 时,什么是可以在不损失精度的情况下表示的浮点数范围?
范围是 32767 到 -32768 加上或减去最大的小数部分。所以
32767 + 65535/65536 到 - 32768 - 65535/65536。
然而,精度与范围不同。您的精度高达 31 位。
假设你用一个2的补码32位整数来表示一个Q15.16,整数的取值范围是[2^31-1, -2^31]
或[2147483647, -2147483648]
,小数位数是2^-16
或1/65536
。因此定点值的取值范围是[2147483647/65536, -2147483648/65536]
或大约[32767.99998, -32768]
.