2016-07-28 16 views
4
class HelloWorld { 
public static void main(String args[]) { 
int b; 
b = 'A'; 
System.out.write(b); 
System.out.write('\n'); 
System.out.write(97); 
System.out.write('\n'); 
System.out.write(1889); 
System.out.write('\n'); 
} 
} 

出力は書き込みコンソール出力は、このプログラムの

A 
a 
a 

どのように次の行が出力としてを作るんです。

System.out.write(1889); 

答えて

9

1889 % 256 = 97です。 256文字のASCII文字があるため、有効な文字を取得するためにmod operatorが使用されます。

2

this answerSystem.out.write(int)に従うと、システム依存の方法で出力に最下位バイトが書き込まれます。あなたの場合、システムはそれを文字として書くことに決めました。

1889 == 0000 0111 0110 0001 
    97 == 0000 0000 0110 0001 

最も右側のオクテットは、両方の数字で同じです。 @Cricketが言及しているように、これはあなたが渡す数値と256の法を取るのと本質的に同じです。

関連する問題