[解決済み] なぜJavaのバイト範囲は-128から127なのですか?
質問
なぜバイトが取り得る最小の値が
-128
. 私は、最高値が
127
であるからです。
01111111
を2進数で表しますが、どのように
-128
を8ビットで表現するにはどうしたらよいでしょうか。正の128はすでに8ビットで、すなわち
10000000
となり、さらに負の符号を表現するために 9 ビット目が必要になります。
どなたか説明をお願いします。
どのように解決するのですか?
答えは 2の補数 .
要するに、Java(そしてほとんどのモダンな言語)は符号付き整数を符号付き倍率表現で表さないということです。言い換えれば、8ビット整数は符号ビットの後に7ビットの符号なし整数が続くのではありません。
その代わりに、負の整数は2の補数という方式で表現されます。これにより、ハードウェアでの演算処理が容易になり、また、正のゼロと負のゼロがあることによる潜在的な曖昧さも解消されます。また、正の0と負の0が混在することによる曖昧さを解消することができます。
2 の補数システムのもう 1 つの興味深い特性は、最初のビットが 効果的に が符号指示子として機能し (つまり、ビット 1 で始まるすべての数値は負)、次の 7 ビットは符号ビットが適用された符号なし数値としてそれ自体で解釈してはいけないということです。
2 の補数はひどく複雑ではありませんが、2 の補数とは何か、どのように、そしてなぜそれが機能するのかを最初によく理解することは、おそらく SO の回答の範囲を超えています。Wikipedia の記事から始めるか、この用語をグーグル検索して、より多くのリソースを入手してください。
128 についての質問を簡単に説明すると、2 の補数を生成する基本的な考え方は、数値の符号なし形式を取り、すべてのビットを反転して 1 を追加することです。つまり、符号なしの128は10000000。これを反転させると01111111となり、1を加えると再び10000000となる。つまり、2の補数系では、10000000は明確に-128であり、+128ではないのです。128以上の数は、負の数の形式と曖昧になるため、2の補数システムを使用して8ビットで表現することはできないのです。
関連
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
コンストラクタDate()が未定義である問題
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
Java:未解決コンパイル問題の解決方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
最新
-
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プログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
Java Notes 005_この行に複数のマーカーがある - キーを変数に解決できない - シンタックスエラー、ins
-
Junitのユニットテストはjava.lang.Testを報告します。
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
Java基礎編 - オブジェクト指向
-
Server Tomcat v9.0 Server at localhost の起動に失敗しました。
-
代入の左辺は変数でなければならない 解答
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.