我试图理解按位运算,根据我的说法,整数包含 32 位,并且从 LSB 第 0 位到 MSB 第 31 位,所以如果我将左移 1 位设置为 31 位,我想我应该得到 2^31 和它的二进制表示是 10000000 00000000 00000000 00000000 那么为什么我得到的结果是负面的?如果我错了,请纠正我。
#include<bits/stdc++.h>
using namespace std;
int main(){
int i=1<<31;
cout<<i;
return 0;
}