左シフトを 32 回実行しようとしたときに、有線の問題がいくつか見つかりました。テスト関数のコードは 0x0 の同じ結果を出力するはずですが、代わりに "ffffffff, 0" が得られました。誰でもコードの何が問題なのかヒントを与えることができますか? ありがとうございました!
int test(int n) {
int mask = ~0 << (32 + ~n + 1);
int mask1 = ~0 << (32 + ~0 + 1);
printf("%x, %x\n", mask, mask1);
return mask;
}
int main(){
test(0);
}