int main() { int z = 0x12345678; cout << hex << z << endl; z = z >> 32; cout << hex << z << endl; return 0; }
输出结果
32溢出了,相当于0试试看31
C99中规定:对于右移大于或等于位宽的操作,或者右移负数的操作,其结果将依赖于编译器的处理和硬件指令的处理,并不唯一。