コードは次のとおりです。動作し、66 を B に相当する ASCII に変換します。
int ascii = 66;
char character = (char) ascii;
私が理解していないのは、それがどのように機能するのですか? これが試験問題だったら、何を書きますか?
問題は、プログラムがそれを「B」に変換する方法を説明することです。char
関数ですか?
"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変数が正しくなります