[問題] 簡單的byte運算

看板java作者 (demy)時間17年前 (2008/03/23 23:42), 編輯推噓4(405)
留言9則, 4人參與, 最新討論串1/1
public class ByteAdd { public static void main(String[] args) { byte i=1; byte j=2; i+=j; //i=i+j; ←請問為什麼沒辦法做運算,ide顯示type mismatch //i= j- i; 但如果byte i, j 改成 int i, j就能運算 } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.71.170

03/23 23:44, , 1F
0和1?
03/23 23:44, 1F

03/23 23:44, , 2F
byte的範圍不是-128~127難道不是嗎@@?
03/23 23:44, 2F

03/23 23:47, , 3F
表面上看起來是兩個 byte 做運算,但實際上是先轉成兩個 int
03/23 23:47, 3F

03/23 23:47, , 4F
改成short也是不行,請問一定要int才能運算嗎?在書上
03/23 23:47, 4F

03/23 23:51, , 5F
i = (byte)i+j;
03/23 23:51, 5F

03/23 23:52, , 6F
喔寫錯 應該是 i = (byte)(i+j) 兩個int運算完的結果還是int
03/23 23:52, 6F

03/23 23:56, , 7F
感謝t大
03/23 23:56, 7F

03/23 23:58, , 8F
只要記得java裡比int小的東西運算完後自動是int就行了
03/23 23:58, 8F

03/23 23:59, , 9F
像是byte char short都是這樣
03/23 23:59, 9F
文章代碼(AID): #17vdfv7A (java)