通常情况下 int 和 long long 运算时会自动转化成 long long,但是在左移运算中,int 左移 long long 得到的还是 int,因此如果你写了 1 << i 就会寄掉,必须写 1ll << i。
int
long long
1 << i
1ll << i