Java の Char データ型の算術演算
Java で char データを扱う場合、算術演算の動作を理解することが重要です。次の式を考えてみましょう。
'a' + 'b'
最初の想定に反して、この加算の結果は char ではなく int です。これは、Java のバイナリ数値昇格ルールによるもので、2 つの文字を加算すると、操作が実行される前に両方とも int に変換されると規定されています。
この昇格は、Java には小さなデータに対する専用の算術命令がないために発生します。 char や bytes などの型。これらの小さい型の演算をシミュレートするために、コンパイラは int 算術命令を使用します。
'a' 'b' の int 結果は 195 です。'a' と 'b' の Unicode コード ポイントは 97 であるためです。
ただし、この動作は = のような複合代入演算子には適用されないことに注意してください。たとえば、次のコードではコンパイル エラーが発生します。
char x = 1, y = 2; x = x + y; // Error: possible loss of precision
このエラーを回避するには、char への明示的なキャストが必要です。
x = (char)(x + y);
あるいは、複合代入演算子を使用することもできます。変換を自動的に実行するために使用されます:
x += y;
式 'a' 'b' のデータ型を決定するには、次のようにします。使用できます:
System.out.println(((Object)('a' + 'b')).getClass());
これはクラス java.lang.Integer を出力し、結果が int であることを確認します。
以上がJava は「char」データ型の算術演算をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。