2015-03-25 33 views
4

我對我的計算機科學課有一個問題有這個問題。如果一個字節在數字周圍有單引號(''),意味着什麼?

byte fun = '0'; 
System.out.println(fun); 

答案是48,但是我班沒有人知道如何工作,或者它的意思。我們知道什麼是字節,但是圍繞它們引用單引號意味着什麼?

+2

谷歌的UnicodeTable和檢查'0'性格有什麼指數在它(十進制) – Pshemo 2015-03-25 11:09:30

回答

2

值在單引號不是byte,它是一個char文字。 Java將其轉換爲UNICODE-16數字值進行賦值。

原因一個得到一個錯覺,引號內的字符是一個字節是Java檢查是在一個範圍內的一個字節的值,可以讓你跳過投時,不需要它。同樣如此分配給short類型或byte變量整數常量:

byte b = 100; 

上面將編譯,即使100是文字int類型,其比byte更寬的,因爲編譯器知道該實際值符合在byte

這是不是這樣的任務普遍適用:如果你使用具有大於128 UNICODE-16值的字符,你會得到一個編譯時錯誤。

例如,這將不會編譯

byte a = 'ё'; 

觸發錯誤

error: incompatible types: possible lossy conversion from char to byte

+1

有一個錯字: * wold *(會?)。 – 2015-03-26 00:29:59

2

任何字符周圍的單引號表示字符文字。

「0」是字面的字符0(其類型爲char),其數值爲48,可自48被分配到一個byte變量沒有明確的類型轉換爲byte有效值的。

相關問題