补码加法公式:x补 + y补 = (x+y)补
举例:
1)x=+1001, y=+0101, 求x+y
解答:x补=01001 y补=00101 (x+y)补=x补+y补=01001+00101=11110 ---->>x+y=+1110
2)x=+1011, y=-0101, 求x+y
解答:x补=01001 y补=11011 (x+y)补=x补+y补=01001+11011=00110 ---->>x+y=+0110(涉及溢出问题)
补码减法公式:x补 - y补 = x补 + (-y)补 = (x-y)补
y补求(-y)补的法则:对y补包括符号位 “求反且最末位加1” (这里老鸟也经常犯错)
举例:
1)x=+1101, y=+0110, 求x-y
解答:x补=01101 y补=00110 (-y)补=(y补)全反+1=11001+1=11010
所以:(x-y)补=x补 - y补 = x补 + (-y)补=01101+11010=00111 ---->>x-y=+0111(涉及溢出问题)
对于计算机语言程序设计,溢出是一个很重要的概念(很多bug都是由于溢出产生)