位移的奇怪行为
Strange behavior of bit-shift
无法理解此位移位的行为:
int container = 1;
cout<<(container>>32)<<endl;
如果是逻辑移位输出应该是0,但它是1,就好像它是循环移位一样。在查看反汇编时,我看到使用的命令是 SAR。请向我解释这种行为。
您将 32 位数字移动了 32,这导致了未定义的行为,结果 1 是巧合。
无法理解此位移位的行为:
int container = 1;
cout<<(container>>32)<<endl;
如果是逻辑移位输出应该是0,但它是1,就好像它是循环移位一样。在查看反汇编时,我看到使用的命令是 SAR。请向我解释这种行为。
您将 32 位数字移动了 32,这导致了未定义的行为,结果 1 是巧合。