我明白要获得两个整数的补充,我们首先翻转钻头并添加一个,但我很难弄清楚tmax和tmin?
在8位计算机中,使用两个签名整数的补充,我如何找到它可以持有的最大和最小整数值?
tmax be = 01111111
?和tmin = 11111111
?
你很关闭。
通过制作最重要的位1和所有其他。
它的值是-2^(n -1)。
通过制作最重要的位0和所有其他位1。
,可以找到带有n位的签名整数的最大值。它的值是2^(n-1)-1。
对于8位,范围为-128 ... 127,即10000000
... 01111111
。
阅读有关为什么在Wikipedia上起作用的原因。
由于溢出会导致负零,因此使用TWOS补体表示的最小符号整数的二进制表示通常是符号的一位,其次是所有零位。
如果将无符号类型的值分为两组,一组为负,另一组为正,则最终会得到两个零(负零和一个正零)。这似乎很浪费,因此许多人决定给予这一价值。应该有什么价值?好吧,它:
- 有一个符号的1,这意味着负面;
- 最重要的位有1个,这意味着2 width-1 (在您的示例中128)...
将这些要点结合起来重新解释该值为-128似乎是有道理的。