[英]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.