问题描述
我只是在尝试移位运算符并注意到一些非常非常奇怪的事情。
考虑下面的代码
unsigned a = 1;
// ========== approach 1
for (int i = 0; i < 32; ++i)
a <<= 1;
// ========== approach 2
a <<= 32;
std::cout << a;
我得到了不同的结果
approach 1 => 0
approach 2 => 1
注意:在 x86
arch 上运行这个
有人可以向我解释为什么吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)