[解決済み] 0x80000000と-2147483648はjavaではどう等しいのですか?
2022-02-16 23:25:29
質問
の2進数をとると
0x80000000
となります。
1000 0000 0000 0000 0000 0000 0000 0000
とはどのように一致するのでしょうか?
-2147483648
. この番組でこんな質問を受けました。
class a
{
public static void main(String[] args)
{
int a = 0x80000000;
System.out.printf("%x %d\n",a,a);
}
}
meow@VikkyHacks:~/Arena/java$ java a
80000000 -2147483648
EDIT 2の補数は負の数を表すのに使われることを知りました。これと1の補数を同じにしようとすると
1's Comp. :: 0111 1111 1111 1111 1111 1111 1111 1111
2's Comp. :: 1000 0000 0000 0000 0000 0000 0000 0000
というのは、またしても意味をなさない。
0x80000000
と同じです。
-2147483648
解決するには?
を使用すると、このようなことが起こります。 符号付き整数のオーバーフロー 基本的には
を取る方がシンプルです。
byte
を例として挙げます。A
byte
の値は、常に -128 から 127 の範囲にあります(この範囲に含まれる)。ですから、もしあなたが
127
(0x7fです) 1を足すと-128になります。128(0x80)をキャストして
byte
:
int x = 0x80; // 128
byte y = (byte) x; // -128
オーバーフローは(2s 補数整数表現では)常に表現可能な最も大きい数から最も小さい数へと進みます。
については
符号なし
の型では、最高値が0にオーバーフローします(これも表現可能な最低の数です)。これは、Javaでは符号なし型が
char
:
char x = (char) 0xffff;
x++;
System.out.println((int) x); // 0
関連
-
[解決済み] テスト
-
[解決済み】予期しない型エラー
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】javaで指定されたファイルが見つからない
-
[解決済み】popBackStack()とreplace()の操作はどう違うのですか?
-
[解決済み】Java、"変数名 "を変数に解決することができない
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】指定された子にはすでに親がいます。先に子の親に対してremoveView()を呼び出す必要がある(Android)
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。
-
[解決済み】Java LinkedListでNodesを使用する
-
[解決済み] java.sql.SQLException を取得しました。ResultSet が終了した後の操作は許可されません。
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。
-
[解決済み】 executeQuery()でデータ操作文が発行できない。)