补码的加法、减法运算

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fengfeng0328/article/details/83241657

补码加法公式: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都是由于溢出产生)

猜你喜欢

转载自blog.csdn.net/fengfeng0328/article/details/83241657