標題:
有关JAVA中byte的小疑惑
[列印本頁]
作者:
krave
時間:
2013-10-23 01:03
標題:
有关JAVA中byte的小疑惑
想了解一下,为什么
int i = Integer.MAX_VALUE +1;
这一句不会报错,而
byte b = Byte.MAX_VALUE+1;
会报Unresolved comilation problem错呢?
需要:byte
找到:int
PS:不晓得这个版块是不是适合初心者发问...
作者:
codedata
時間:
2013-10-23 07:19
整數相加,一徑 promote 至 int 型態運算,最後結果是 int,因而放不入 byte,加上 cast 就可以了…
byte b = (byte) (Byte.MAX_VALUE+1);
複製程式碼
只不過就這個例子來說,相加運算後因為超出了 byte 範圍,變數 b 容納不下而失去精度,最後結果也會是不正確的。
作者:
krave
時間:
2013-10-25 01:18
整數相加,一徑 promote 至 int 型態運算,最後結果是 int,因而放不入 byte,加上 cast 就可以了…
只不 ...
codedata 發表於 2013-10-23 07:19
哦~~~ 原来是这样
错误的原因原来并不是计算的值过大越界,而是因为promote了的关系。
作者:
caterpillar
時間:
2013-10-25 10:06
參考一下 Promotion 與 Cast
http://openhome.cc/Gossip/JavaEssence/PromotionCast.html
歡迎光臨 CodeData 技術論譠 (http://codedata.com.tw/forum/)
Powered by Discuz! 7.2