补码加减(运算与控制)
(-Y)补 = [Y补]变补,这个要好好理解
(-Y)补:先将Y的符号位置反,在求-Y的补码(数字为变反加1)
[Y补]变补:先求Y的补码(数字为变反加1),在求Y补的变补(Y补的符号位和数字位一起变反,再加1)
感觉二者不相等啊,前者的数字位只取了一次反,但后者的数字位取了两次反
以上描述犯的错误是-Y的意思是例如将1变为-1,而不是将0 0001变为1 0001。-Y不是说将Y的补码的符号位变反,而是说将真值取相反数后再用补码表示。
步骤:
溢出判断
原码加减
原码运算时,符号位不参加运算,得到运算结果后,符号位根据规则补上去
而补码运算时,符号位一同参加运算
标准移码的加减
这个加减法则啥意思,和上一张图片的那个公式有啥不一样,这个咋看着这么复杂?
算的时候要依据下面这张图的规则,[E2]移 求补,再与[E1]移相加,再符号取反
得到0011补之后怎么算真值,为啥是符号取反,1011的真值为啥是3?
因为规则里说了符号要取反。所以是1011。
1011的真值是多少?为啥是3?
依据规则:
[-6]移 求补,再与[-7]移 相加,再符号取反。-1的补码不应该是1111?
[5]移 求补,再与[-3]移相加,再符号取反。-7的补码不应该为1001?-8的补码不应该为1000?
原码一位乘
为什么符号是1
补码一位乘