top

有关JAVA中byte的小疑惑

想了解一下,为什么
int i = Integer.MAX_VALUE +1;

这一句不会报错,而

byte b = Byte.MAX_VALUE+1;

会报Unresolved comilation problem错呢?

需要:byte
找到:int

PS:不晓得这个版块是不是适合初心者发问...

整數相加,一徑 promote 至 int 型態運算,最後結果是 int,因而放不入 byte,加上 cast 就可以了…
  1. byte b = (byte) (Byte.MAX_VALUE+1);
複製程式碼


只不過就這個例子來說,相加運算後因為超出了 byte 範圍,變數 b 容納不下而失去精度,最後結果也會是不正確的。

TOP

整數相加,一徑 promote 至 int 型態運算,最後結果是 int,因而放不入 byte,加上 cast 就可以了…

只不 ...
codedata 發表於 2013-10-23 07:19



    哦~~~ 原来是这样
错误的原因原来并不是计算的值过大越界,而是因为promote了的关系。

TOP

TOP