原码:正数的原码首位为0;负数原码首位为1
反码:正数和原码相同;负数保留首位,其余位取反
补码:正数和原码相同;负数保留首位,其余位反码基础上加1
补码的加法:直接加,结果仍为补码
补码的减法:变减为加
[x]补-[y]补=[x]补+[-y]补
[-y]补=[y]补连同符号位一起变反再加1
---------------------------------------------------------------------------------------------------------------------------------
《计算机科学导论》机械工业出版社给出的另外一种解释(这个方法感觉很绕)
原码:正负数原码首位都为0
反码:正数负数:直接取反
补码:正数负数:从右向左复制原码,直到有1被复制,反转其余位
在计算机中负数以补码被存储;其余以原码被存储
补码的加法:直接加,结果仍为补码
补码的减法:[x]补-[y]补=[x]补+[[y]补]补