Java 文字追加での数値型変換
「a」「b」などの 2 つの Java char を追加する場合、数値型変換が発生します。他のほとんどのプログラミング言語とは異なり、この追加は char 出力にはなりません。
Result Datatype
Java 言語仕様によると、chars、short を追加した結果、または bytes は int です。この動作は、Java の バイナリ数値プロモーション ルールに起因します。このルールでは、バイナリ算術演算の実行時に両方のオペランドが int 型に変換されると規定されています。
Example
次の点を考慮してください例:
char x = 'a' + 'b'; // 결과는 int System.out.println(x); // 195를 출력
例外
ただし、これらのルールには = などの複合代入演算子に対する例外があります。例:
char x = 1, y = 2; x += y; // 합법적이며 결과는 char System.out.println(x); // 195를 출력하고 컴파일 오류가 발생하지 않음
この場合、加算の結果 (int) は複合代入演算子を使用して明示的に char にキャストされます。
結果の型の決定
一般に結果の型を判断するには、結果をオブジェクトにキャストし、その結果をクエリします。 class:
System.out.println(((Object)('a' + 'b')).getClass()); // class java.lang.Integer를 출력
パフォーマンスに関する考慮事項
Java バイトコードには、より小さいデータ型での算術演算のための特定の命令がないことに注意してください。代わりに、int ベースの命令 (iadd など) を使用し、必要に応じて上位バイトを手動でゼロに設定します。
文字列連結
目的が文字を連結することである場合文字列を数値として解釈するのではなく、式で空の文字列を使用します。これは、char と String を追加すると、文字列。
以上が2 つの Java 文字を追加すると、文字ではなく整数が得られるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。