为什么在32次以上使用时,32位整数的左位移位(<“)不像预期的那样工作呢?
当我编写以下程序并使用GNU C+编译器时,输出是1我认为这是由编译器执行的旋转操作造成的。
1
#include <iostream>int main(){ int a = 1; std::cout << (a << 32) << std::endl; return 0;}
但从逻辑上说,如果比特宽度溢出,则输出应该为0。怎么回事?
密码在第一位,http://ideone.com/VPTwj.
江户川乱折腾
胡子哥哥
相关分类