6

私は次のようにコーディングしましたが、o / pは期待されていませんか?誰かが私を導きますか?

質問:16進整数を宣言し、明示的な型変換を使用してそれを文字に変換するサンプルプログラムを作成しますか?

class hexa
{
public static void main(String ar[])
{
    int hex=0xA;
    System.out.println(((char)hex));
}
}

教えてください:出力に違いがある理由

/*code 1*/
int hex = (char)0xA; 
System.out.println(hex); 
/*code 2*/
int hex = 0xA; 
System.out.println((char)hex);
4

2 に答える 2

11
int hex = 0xA; 
System.out.println( (char)hex );

16進値0xA(または10進数の10)は、ASCIIでは「\ n」(改行文字)です。
したがって、出力。

編集(コメントで訂正を提供してくれたhalexに感謝します:

int hex = (char) 0xA;
System.out.println(hex); //here value of hex is '10', type of hex is 'int', the overloaded println(int x) is invoked.

int hex = 0xA;
System.out.println((char) hex); //this is equivalent to System.out.println( '\n' ); since the int is cast to a char, which produces '\n', the overloaded println(char x) is invoked.
于 2012-10-07T09:05:31.483 に答える
1

A手紙を印刷してほしいと思います。print使用する代わりにprintf

int hex=0xA;
System.out.printf("%X%n", hex);
于 2012-10-07T09:07:11.140 に答える