型変換における Java の奇妙な動作: -124 の謎を明らかにする
Java で整数をバイトに代入しようとすると、興味深い観察が生じます。整数値 132 は、バイトにキャストされると -124 としてレンダリングされます。この謎めいた結果は、最初は不可解に見えるかもしれません。
2 の補数パズルの探索
この謎を解明するには、Java の基本的なデータ型とその表現を詳しく調べることが重要です。 Java では、int や byte などの整数型は、2 の補数表記を使用して署名されます。この表記では、最上位ビットが符号を表し、数値がより大きなビット サイズに拡張されてもその値が最上位ビットとして保持されます。
符号なしの至福の追求
ほとんどのシナリオでは、バイトを符号なしの値として解釈し、符号情報を破棄することが望ましいです。これはビット単位の演算によって実現できます。たとえば、マスク 0xff を使用したビット単位の AND を符号付きバイトに適用すると、符号ビットが効果的に削除され、符号なしの値が明らかになります。
解明されたマスク解除の儀式
プロセスは次のように展開されます:
この手法により、符号付き整数から符号なしバイト値をシームレスに抽出できます。
結論
Java の int から byte への変換では、基礎となる 2 の補数表記により、微妙だが興味深い動作が導入される可能性があります。これらのニュアンスを理解することは、予期しない -124 出力の背後にある謎を解明するのに役立ち、開発者が Java アプリケーションでデータ型を効果的に操作できるようになります。
以上がJava 整数をバイトにキャストすると、132 であるのに -124 になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。