作者回复: 其他的材料一般都没有将“为什么”这么算说清楚,我画了张图,你结合图来理解。简单的说,你可以认为a-b的减法就是给a加上一个特别大的数,导致溢出,然后剩下的反而比a小,这就达到了减法的目的
作者回复: 是的
作者回复: 是的
作者回复: 是的
作者回复: 是的👍
作者回复: 计算机存储的就是补码,这个推导过程是便于人的理解
作者回复: 很详细的解释
作者回复: 第一处有个笔误,我的原意是-2^(n-1),而不是2^n
第二个问题很好 -2^63的补码还是它自己,符号位进位舍弃
作者回复: 负数在计算机中用补码表示,你可以先算算-34的补码是多少
作者回复: 对于有符号的数据类型,2^n-1是n位1,但是第一个是符号位,所以符号位是1
作者回复: 其实两者是可以这样互换的,这样思考可能更简单一点:(2^n-1-j原+1)=j补,那么j原和j补分别移到等号的另一边,就是(2^n-1-j补+1)=j原,2^n-1-j补就是去j补码的反码,然后+1就是j原码
作者回复: 符号位不参与
作者回复: 是的👍
作者回复: 要考虑符号位
作者回复: 对的,负负得正的原理