更具体地说, 2n位的二进制数,n位整数(包括一位符号)和n位分数。
我们可以代表的最小和最大,正数,非零数字是多少?
我知道如何处理整数但不确定分数。
答案 0 :(得分:1)
典型的二进制定点表示是一个由2的常数幂缩放的整数,因此所涉及的因素是
给定带符号位和2n-1
位的二进制补码整数,正数范围为[1..(2^(2n-1))-1]
,标度为2^-n
。因此,最小和最大正定点值为[1*2^-n..((2^(2n-1))-1)*2^-n]
。
例如,C的int16_t
类型有15位数字,因此其范围为[1..(2^15)-1]
或[1..32767]
。此处n
8
为2^-8
或1/256
。因此,缩放范围为[1/256..32767/256]
或[0.00390625..127.99609375]
。您可以使用此C++ program使用CNL计算n
的不同值的范围。