Integert.valueOf( 'a')を実行しているとき charのASCII値である97を戻しています。整数は自動的にcharをASCII値に変換しますか?
charがvalueOfメソッドのascii値で変換されたときを知りたいですか?
Integert.valueOf( 'a')を実行しているとき charのASCII値である97を戻しています。整数は自動的にcharをASCII値に変換しますか?
charがvalueOfメソッドのascii値で変換されたときを知りたいですか?
あなたは内部的な型変換が行われます。
ので、あなたのコードは、これと同等です:
char a = 'a';
int aint = (int)a;
Integer aInteger = Integer.valueOf(aint);
System.out.println(aInteger.toString());
は、オラクルのJavaチュートリアルを引用:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
チャーは:charデータ型は、1つの16ビットUnicode文字です。 '\ u0000'(または0)の最小値と '\ uffff'(または65535を含む)の最大値を持ちます。
ので、変数aは、 ''(97)
をcharachterのUnicodeの同等のものを保持しているものを、次に起こることは拡幅操作 https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html
5.1.2です。
[...]
プリミティブ変換を広げる一体型Tへチャーの拡大変換は、より広い形式を充填するchar値の表現をゼロに延びています。
したがって、char(16ビット)はint(32ビット)に拡大されます。 Integer.valueOf(に供給beeingているものであるint型
)あなたの質問をansweres
希望。
トビ
char
は数値型です。 Integer.valueOf(int i)
メソッドを呼び出すと、int
になります。 char
は、ゼロ拡張によって16ビットから32ビットに昇格され、その値はvalueOf
メソッドに渡されます。
ASCIIはここにはほとんど関係ありません。 Oracle javac
参照コンパイラのようなほとんどのJavaコンパイラは、ソースコードの解析時にWindows-1252などのプラットフォームのデフォルト文字セットを使用し、内部的にJavaはUnicodeを使用します。ただし、ASCIIはこれらの文字セットのサブセットであり、Unicodeコードポイント97 LATIN SMALL LETTER Aは3つすべてに共通です。
コードポイントを「ASCII値」と呼ぶのは一般的ですが、ギリシャ文字の「ASCII値」を話そうとすると混乱することがあります。実際にUS-ASCII文字セットについて話している場合を除き、「コードポイント」と言う方が良いでしょう。
内部的に使用されている**それは、厳密に言えば、変換されていません** – Frank
のparseInt。 ASCIIは、基本的に文字セットを数字にマッピングする文字エンコーディング標準です。 Java VMには、一方の側にはIntegers、もう一方にはCharsというこのマップがあります。 – marekful
@marekful parseIntメソッドが内部的に呼び出すときに動作しているのを見て、もっと説明してください。 – msanaullah