摘要:
位移如果sizeof(int) = 4,那么下面的代码的结果是什么?int x=255; printf("%d", x>>34);实际输出:63在编译这个代码时,编译器会给出警告[Warning] right shift count >= width of type [enabled by default](这时假设位移运算位移步数只能在[0, type_bit_width)范围内)位移操作会对其位移步数对数值位宽(这里int类型为32位)做一次求余操作即上述代码等同于x >> (34 % 32)实际上上述的等同不完全正确,当位移步数是负数时x 阅读全文