-6

コードは次のとおりです。動作し、66 を B に相当する ASCII に変換します。

int ascii = 66;
char character = (char) ascii;

私が理解していないのは、それがどのように機能するのですか? これが試験問題だったら、何を書きますか?

問題は、プログラムがそれを「B」に変換する方法を説明することです。char関数ですか?

4

1 に答える 1

0

"char" => "int" は拡大プリミティブ変換 と呼ばれ、"int => char" は縮小プリミティブ変換と呼ばれます。

Java では、char は単なる 16 ビット整数です。int (32 ビット整数) を char にキャストすると、int の最下位 16 ビットが保持され、上位 16 ビットが破棄されます。これを縮小変換と呼びます。Java 文字は、Unicode 文字セットのメンバーとして表されます。'B'の Unicode 値は 66です。

int ascii = 66;

整数値 66 が に割り当てられasciiます。

char character = (char) ascii;

character整数の最初の 16 ビットを格納しasciiます。66を保存しても16ビットを超えないため、char変数が正しくなります

于 2013-06-02T07:21:58.410 に答える