是到负奇数(-25)的时候开始不一样的,
估计和符号位有关
为什么不清楚,关注中!

解决方案 »

  1.   

    -100 / 2 = -50
    -50 / 2 = -25
    -25 / 2 = -12  (因为是整数之间的‘/' 运算,所以小数位被截去
    -12 / 2 = -6
    -6 / 2 = -3
    所以得到-3是正确的
    -100的二进制数是 10011100B 右移四位并补1后得11111100B,这个二进制数对应的就是-4
    所以得-4也是正确的。负数就是负数,正数就是正数,运算规则本身就不一样,比如(右移四位并补1),又何谈一定要结果一致呢,至于为什么要这样运算,那就是客观“规定”了,没什么太主观的原因。当然补1是因为负数的无效数是1,正数的无效数是0,所以正数补0,负数补1,要是还不明白,你最好看一下教授“计算机组成原理”方面的教材,上面有全方位的解释。