ホームページ > Java > &#&チュートリアル > 2 つの Java 文字を追加すると、文字ではなく整数が得られるのはなぜですか?

2 つの Java 文字を追加すると、文字ではなく整数が得られるのはなぜですか?

DDD
リリース: 2024-12-08 04:14:10
オリジナル
380 人が閲覧しました

Why Does Adding Two Java Chars Result in an Integer, Not a Char?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート