关于二进制计算问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 00:19:09
为什么能用补码来计算二进制加减问题?有什么内在联系?如果是两个数以上的连续加减计算该怎么用补码算?
我想问的是补码和二进制整数负数的内在联系是什么,而不是简单的一两个关系式,为什么能用补码表示二进制数,为什么二进制中整数补码是本身,而负数是其反码加一?
仅仅是变换公式我也会啊。。。但我要问的是为什么补码能计算二进制数。。。

书上有讲啊,补码的引入是因为要简化cpu运算,加减乘除只用一个累加器就能完成,减法运算就利用补码算,等于是一种转换公式吧。你自己找几个减法例子算算,证明这个公式是正确的。当然你算的时候要模拟电脑的算法。
设定补码就跟数学中的一些简化公式一样,都是为了便于计算,至于补码的原理。你可以想象成一个钟,现在是凌晨5点,你也可以认为是昨天下午5点。
因为一个字节就是8为二进制,当溢出时就会发生循环,而不是终止,所以你也可以看成是表。
大概就是这个意思,因为又上限,所以有循环,所以一个负数可以用一个正数来表示。
其实我也搞不清,也稀里糊涂的。

反码两大好处:
1.符号位直接运算(正负整数小数不用再加考虑) 两数补码的和等于和的补码(运算前变补码 算完变回来)
2.补码对0的表示是唯一的 有利于简化系统

详细点:
计算机中用二进制数运算 但简单的二进制数不能表示正负数 便用前面加0表正 加1表负 这样+000就是0000 -000就是1000 相加就得1000就不等于0了

用补码表示的话
正数不变 +000就是0000
负数负号变1 数字位取反 加1 进位丢去 -000就是1111+1=0000
0000与0000相加还是得0000

除0外 一般的数 3+(-2)=?
3 二进制补码:0011
-2 二进制原码:-010
二进制补码:1110
0011+1110=10001 最前面那位是进位 丢去 就是0001 等于10进制的1
这样运算前变补码 算完变回来使得计算机内部统一高效的运行

在计算机2补算术中,负整数一般用补码表示.对于给定的正整数n(位数),要表示负数X,则最高位(符号位)为一,其余位是2的n-1次方减绝对值X.二进制数加减很简单,本质是一样的,乘法可化为移位和加法运算.除法是欧几里得算法的反写.