C++中右移一位和除以2的区别


在负奇数的时候得出的计算结果是不一样的

原因在于:

  • 右移一位的时候,数字的二进制右移n位相当于乘以2的n次方,左一一位相当与乘以2

    -7 二进制: ?1111111111111111111111111111111111111111111111111111111111111001?

    右移一位