2015-01-27 2 views
0

Поэтому, если вы приводите инструкцию выше System.out.println('3' + 0 );System.out.println ('3' + 0);

вы получаете 51 как выход.

Если запустить другое подобное заявление,

System.out.println( 3 + '0'); 

вы получите тот же результат, который 51.

Однако, если запустить третье утверждение,

System.out.println('3' + '0') 

то в результате получится 99.

Может ли кто-нибудь объяснить, что именно происходит за этими тремя результатами?

ответ

1

Когда вы кладете номера как 0 внутри «» вы возвращаете значение ASCII/Юникода 0, что в данном случае 48 и именно поэтому при добавлении 3 к «0» вы получите 51.

1

Из это:

char c = '0'; 
int ascii = (int) c; // ASCII of '0' is 48 
System.out.println(3 + ascii); 
+0

[** ASCII Table **] (http://www.techonthenet.com/ascii/chart.php) –

0

При использовании System.out.println('3' + 0 ); или System.out.println( 3 + '0'); здесь есть переключатель типа, символьные 0 Menas INT 48, так '3' + 0 означает 51 + 0 = 51 так же 3 + '0'.

So '3' + '0' средства 51 + 48 = 99.

1

код ascii '3' равен 51. Когда вы добавляете к нему целое число 0, результат равен 51 и печатается. аналогично, код ascii «0» равен 48, и вы добавляете к нему 3 ... но когда вы добавляете «3» и «0» в формате ascii, добавление 48 и 51 и, следовательно, выход 99. Это происходит потому, что неявного преобразования типов в java.

Смежные вопросы