32bit符号付整数で(-2³¹)-(2³¹-1)=1となるのはなぜでしょうか?
下のプログラムを動かすと、(-2³¹)-(2³¹-1)の結果、1が出力されます。
Java
1System.out.println(Integer.MIN_VALUE-Integer.MAX_VALUE);
正しい計算結果だと-2³²-1ですから-2³²が失われてしまっています。
なぜでしょうか。
回答3件
あなたの回答
tips
プレビュー
投稿2020/03/20 17:56
編集2020/03/22 15:5032bit符号付整数で(-2³¹)-(2³¹-1)=1となるのはなぜでしょうか?
下のプログラムを動かすと、(-2³¹)-(2³¹-1)の結果、1が出力されます。
Java
1System.out.println(Integer.MIN_VALUE-Integer.MAX_VALUE);
正しい計算結果だと-2³²-1ですから-2³²が失われてしまっています。
なぜでしょうか。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/22 14:25 編集
2020/03/22 14:40
2020/03/22 15:21