位移的奇怪行为

时间:2015-08-03 18:54:13

标签: c++ bitwise-operators bit-shift

无法理解此位移的行为:

int container = 1;

cout<<(container>>32)<<endl;

如果它是逻辑移位,则输出应为0,但它是1,而不是循环移位。在查看反汇编时,我看到使用的命令是SAR。请向我解释这种行为。

1 个答案:

答案 0 :(得分:1)

您将32位数字移动了32,这导致了未定义的行为,结果为1是巧合。