本帖最后由 张子凯 于 2013-3-11 08:30 编辑
计算机负数之所以采用反码是因为计算机只能计算加法,将负数用反码表示就能利用加法算减法。
为了理解补码表示法,首先要了解模和同余的概念。
模式之一个计量器的容量,可以用M表示。一个4位的二进制计数器,当计数器从0到15后,再加1,计数器又变回0.这个计数器的容量是M=2^4=16,即模为16.
同余概念是指两个整数A和B除以同一正整数M,所得余数相同,则称A和B对M同余,即A和B在以M为模时是相等的,可以写作A=B( mod M)。
利用模和同余概念的补码表示法在进行算术运算时可以使减法运算化为加法运算,从而简化机器的电路。
举个例子:假设时钟现在是8点,正确的时间是6点,这时调准时钟的方法有两种:
1,将分针倒着转2圈(即倒拨时钟2小时),8-2=6(做减法)。
2,将分钟正着转10圈(时钟正拨10小时),8+10=6( mod 12),这是做加法。
此时 8-2=8+10(mod 12)
设: A=-2 B=10
则 10/12=(12-2)/12=1+(-2)/12
故-2和10同余。同余的两个数具有互补关系,-2与10对模12互补,也可以说-2的部署是10(以12为模)
可见,只要确定了模,就可以找到一个附属等价的整数(该整数即为负数的补数),来代替此负数,而这个整数可以用模加上负数本身求得,这样就可以把减法运算利用加法实现了。D:\My Documents\My Pictures\补码.bmp |
|