c++ - 移位运算符的奇怪 C++ 行为
问题描述
我正在修补一个 C++ 程序,我偶然发现了一件非常奇怪的事情。
此代码输出 0:
#include<iostream>
using namespace std;
int main(){
cout<<(1<<(32LL));
}
而这个输出1:
#include<iostream>
using namespace std;
int main(){
long long int a=32;
cout<<(1<<a);
}
为什么是这样?
解决方案
推荐阅读
- node.js - 在 SSR 网站的静态资产上使用 CDN 是否合理?
- artificial-intelligence - 如何将focus_loss应用于SSD
- node.js - Julia 谈电子框架
- python - Django:当来自html的点击事件请求django视图时,有没有办法在VLC或其他东西中播放本地视频?
- angular - 如何在Angular中的路线更改之前评估条件?
- c - free() 是否适用于重新分配的指针?
- javascript - 我怎样才能做到这一点,以便我的静音命令将不和谐 ID 作为标识符而不是 @他们
- python - 使用类和框架与 tkinter 在标题栏中获取应用程序“无响应”消息。需要多线程/处理帮助来解决
- javascript - 使用 React Hooks 从嵌套数组中删除一个项目
- node.js - Nodejs sqlite3 和 node-pre-gyp、typeorm