首页 > 解决方案 > 移位运算符的奇怪 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);
}

为什么是这样?

标签: c++

解决方案


推荐阅读