左移和右移操作

& gt& gt右移时,由计算机系统决定空出的高位是补1还是补0,但从你给出的题目可以看出,是由要移位的数的高位决定的。如果高位是1,则补1,如果高位是0,则补0。

-5是十六进制的0xffff fffb,右移3位,高位空出的3位补1,就是0xffffffff,也就是-1。

用十六进制表示5时,为0x00000005,右移3位。高位空出来的3补0,就是0x00000000,也就是0。

& gt& gt& gt是一个无符号右移位运算符,也就是说,空位用0来补充,所以

-5 & gt;& gt& gt3表示0xfffffffb & gt& gt& gt3得到的十六进制数是0x1fffffff,也就是536870911。