ホームページ  >  記事  >  Java  >  Javaのバイト型の詳細な紹介

Javaのバイト型の詳細な紹介

青灯夜游
青灯夜游転載
2019-11-25 15:51:573932ブラウズ

Java は、基本的な型であるバイト データ型も提供します。 Java バイトは最小の数値として処理されるため、その値の範囲は符号付きバイトである -128 ~ 127 として定義されます。以下の記事ではJavaのバイト型に関する情報を中心に紹介していますので、困っている方は参考にしてみてください。

Javaのバイト型の詳細な紹介

【推奨学習: Java ビデオ チュートリアル

はじめに

byte、つまりバイトは8ビットのバイナリで構成されます。 Java では、バイト型データは 8 ビットの符号付き 2 進数です。

コンピュータでは、8 ビットの符号付き 2 進数の値の範囲は [-128, 127] であるため、Java のバイト型の値の範囲も [-128, 127] です。

値の範囲分析

なぜ -128 から 128 ではないのか疑問に思っています。今日はこの問題を分析しました。

まず、次の操作規則を理解する必要があります。

正の数の最上位ビットは 0、正の数の値は 0 です。はバイナリで表される値です。

負の数値の最上位ビットは 1 です。負の数値を反転して 1 を加え、さらに負の符号を追加して値を取得します。

このルールを説明するために 8 ビット バイナリを使用します:

例: 00000001。最上位ビットが0の場合は正の数なので、10進数で1を表します。

別の例: 10000001。最上位ビットは 1 で、負の数です。値は何ですか?これを否定して 01111110 を取得し、1 を追加して 01111111 を取得すると、値は -127

この演算ルールを理解して、バイト (正確に 8 ビットの 2 進数) について正式に話し始めます。 short は 16 ビット、int は 32 ビット、long は 64 ビットです。

正の最大バイト数が 01111111 (最上位ビットは 0 でなければなりません)、つまり 127 であることを理解するのは難しくありません。

じゃあ、最小の負のバイト数は 11111111 だと思うかもしれませんね? そう思ったら、それは完全に間違いです。 2 進数 11111111 が何を表すかを見てみましょう。

上記のヒントによると、これは負の数であることがわかります。その値は最初に否定され、次に 1 が追加されます。

11111111 を反転すると 00000000 が得られ、1 を追加すると 00000001 が得られます。取得される最終値は -1 です。

これは最大の負の数です。このことから、負の数の最小値は 10,000,000 であると考えたことはありますか?

計算して否定しましょう: 01111111、1 を足して 10000000、そして最後に -128 を取得します。

127 は 01111111 ですが、-128 は 10000000 です。奇妙なことがわかります。

これら 2 つの 2 進数をよく見てください。前者に 1 を足すと後者が得られますか?右。

実験用の小さなプログラムを作成できます:

byte a = 127; 
a+=1; 
System.out.println(a);

結果は正確に -128

ここから、2 進数の範囲が 00000000 ~ 01111111 ~ 10000000 であることがわかります。 to 11111111

つまり、10 進数の範囲は 0 ~ 127 ~ -128 ~ -1 です。

次に、バイトをより深く理解するためにコードを使用します:

public class A {
 public static void main(String[] args) {
  int b = 456;
  byte test = (byte) b;
  System.out.println(test);
 }
}
上記のコードは最終的に -56 を出力します。その理由は次のとおりです:

456 のバイナリ表現は 111001000 です。int は 32 ビット バイナリなので、コンピュータでは実際には 00000000000...111001000 になります。int をバイトに変換すると、コンピュータは最後の 8 桁は 11001000 のみを保持します。

この場合、11001000 の最上位ビットは 1 で、これは負の数であることを意味します。負の数はコンピューターでは 2 の補数形式で格納されるため、11001000 の元のコードは 00111000 (つまり 56) として計算されます。 so 11001000 これは -56 を表すため、最終テスト値は -56 になります。

この記事は

Java 入門

列からのものです。ぜひ学習してください。

以上がJavaのバイト型の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。