發(fā)現(xiàn)問題
有人會想相加?還不簡單,用 + 呀。
byte a = 1;byte b = 2;byte c = a + b;
以上代碼是通不過編譯的,因為編譯器對待 + 時,有 int 相加、有 decimal 相加、有字符串相加……就是沒有 byte 相加,所以它會用最接近的 int 相加,自然返回的結(jié)果也是 int,而 int 類型是不能直接賦值給更小的 byte 類型的。
解決方法
所以,得改成這樣:
byte a = 1;byte b = 2;byte c = (byte)(a + b);
還好 += 不存在這個問題,a += b 是沒問題的。
byte 最大值
byte 最小值是 0,最大值是 255,所以 byte a = 256 是通不過編譯的。
而 + 超過的就不一樣了。
byte a = 255;a += 1; // 這里結(jié)果是 0byte b = 150;b += 150; // 這里結(jié)果是 44,若改為:b = (byte)(b + 150); 是一樣的。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答
圖片精選