给你举个例子吧
比如说,A=7;
把A化成二进制的就是111;
A/2是十进制的运算,也就是7/2 = 3;
A>>=1是将A的二进制位向右移一位,也就得到011,结果也是3;
一般情况下这两种运算结果都会相同的,
如7 = 1*2^2+1*2^1+1*2^0;
除以2以后 1*2^1+1*2+1*2^-1;
结果也就差在最后的那个0.5上,但是,/是整出,最后的0.5会舍去,所以结果应该会相同;
左移时总是移位和补零。右移时无符号数是移位和补零,此时称为逻辑右移;而有符号数大多数情况下是移位和补最左边的位(也就是补最高有效位),移几位就补几位,此时称为算术右移。