2015-12-15 47 views
-3

我不明白下面的Java代碼背後的邏輯,爲什麼第一線工作,而另一些則不然:混淆精度問題字節

//works 
byte b = 50 * 2; 

//throws precision error 
byte b = 50; 
b = b * 2; 

//throws precision error 
byte b = 100 * 2; 
+4

@StigTore:它是-128到127,2不會工作因爲'b * 2'是一個'int'。 –

回答

0

@喬恩飛碟雙向是的第二個也給異常,因爲Java應用隱式向上傳到這種情況意味着b * 50的輸出是100,但它是int型,所以你必須下降到字節..