簡體   English   中英

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

[英]System.out.println( '3' + 0 );

因此,如果您運行System.out.println( '3' + 0 );以上的語句,

您得到51作為輸出。

如果您運行其他類似的語句,

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

您將得到相同的結果,即51。

但是,如果您運行第三條語句,

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

那么您將得到99。

誰能解釋這三個結果背后究竟發生了什么?

當您在''中放入0之類的數字時,您將返回ASCII / unicode值0,在這種情況下為48,這就是為什么將3加到'0'時得到51的原因。

因為這:

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

ASCII碼“ 3”為51。當您向其添加整數0時,結果為51並被打印。 類似地,“ 0”的ascii代碼為48,並且要向其添加3 ...但是當同時以“ ascii”格式添加“ 3”和“ 0”時,其相加結果為48和51,因此輸出為99。 Java中的隱式類型轉換。

當您使用System.out.println( '3' + 0 ); System.out.println( 3 + '0' ); 這是一個類型開關,char 0 menas int 48,所以'3' + 0表示51 + 0 = 51也是3 + '0'

所以'3' + '0'表示51 + 48 = 99

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM