定点数范围代表什么?为什么我们使用公式,为什么要减去?其中是整数位数,是小数位数。
如果我们有例如和,我们是否有可能表示数字,这样就可以表示范围?
定点数范围代表什么?为什么我们使用公式,为什么要减去?其中是整数位数,是小数位数。
如果我们有例如和,我们是否有可能表示数字,这样就可以表示范围?
假设我们正在处理无符号数字类型。如果您将所有位用于整数部分,则可能的数字集将是:
这些数字可以除以(或乘以)以使用位作为小数部分,从而得到这组可能的数字:
所以你的公式给出了可以表示的最大数字(双下划线)。
该公式也可以理解为或一个最低有效位 (LSB),这是第一个与 0 具有相同截断二进制字符串表示的数字,第一个数字在系统。以类似的方式,在 8 位无符号整数系统中,我们从 256(二进制 1 0000 0000)向后退一步,得到 255(二进制 1111 1111),这是该系统中最大的可表示数字。
我刚刚发现范围在算术中具有确定的含义:最大值减去最小值。最小值恰好为零,因此在这种情况下,最大值等于范围。
对于无符号定点,位二进制数的表示为
为了这-bit 二进制数,您可以从中获取值到因为最小的数是-位全零(),最大的是-位全1()。然后给出最小值和最大值的表示如下:
您可以阅读Randy Yates 关于定点算术的这篇精彩论文。在那里,您可以找到签名案例范围的推导等等。
该公式表达了我们可以用整数/小数表示的最大和最小数字之间的差异。
考虑一个简单的例子,例如 2.2(在我们的定点表示中有 2 个整数位和 2 个小数位)。
如果我们使用二进制补码(有符号)二进制,我们可以表示的最大正数是:
01.11
这个数字相当于.
我们可以表示的最大负数是:
10.00
这个数字相当于.
这里的总范围是从最大的正数到最大的负数,或者->. 请注意,这等于:
, 或者两者都在哪里和根据我们的 2.2 表示,等于 2。