看板 java 關於我們 聯絡資訊
大家好 最近初學java 因為在下目前是在用有關繪圖的東西 然後是用在Android軟體開發上,所以JAVA的版本我好像不太清楚 但我想這應該沒麼大礙 在處理圖像的時候 他有個格式叫做ARGB_8888 就是alpha 8bit Red 8bit Green 8bit ...... 總之一個像素就是由一個整數組成 e.g. 紅色 0xFFFF0000 藍色 0xFF0000FF --- Q1: 那現在就是我有一個byte型態的資料計載紅色的值,假設紅色值是255(0xFF) 在Debug Window看到的是 -128 然後我希望填到整數0xFF000000的右邊數來第5, 6個位置 使得結果變成 0xFFFF0000 我是這樣寫的 byte tmp_A = -128; int tmp_B = 0xFF000000; tmp_B |= (tmp_A << 16); 結果輸出tmp_B似乎不是我要的0xFFFF0000 (/‵Д′)/~ ╧╧ 請問這之中有什麼誤會嗎? Q2: byte tmp_c = 0xFF; 好像不能直接這樣寫對吧? 我這邊這樣寫組譯不給過 先謝謝囉 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.168.152.122
rofellosx:不然你認為tmp_B變多少.. 01/05 17:46
leatica:我是希望tmp_B變成0xFFFF0000,這值應該不是-128吧 01/05 18:04
抱歉,數字抄錯 但還是不太懂 ※ 編輯: leatica 來自: 218.168.152.122 (01/05 18:27)
snowlike:(原本是-128)tmp_A&0xff<<16,建議寫成tmp_A=(byte)255 01/05 18:49
leatica:謝謝樓上 01/05 19:31