3

昨夜、私の友人は次のような状況を教えてくれました。

c/c++ では、次のような 2 行のコードを記述します。

int a = 0;
printf("%d\n", 1 << -1);
printf("%d\n", 1 << (a-1));

2 つの異なる結果があるのは驚くべきことです。前は 0 で、もう 1 つは -2147483648 です。

理由はわかりませんが、どなたでも助けていただけます。

どんな言葉でも大歓迎です。

4

3 に答える 3