[問題] 位元運算問題,將byte填進int內
大家好
最近初學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
推
01/05 17:46, , 1F
01/05 17:46, 1F
→
01/05 18:04, , 2F
01/05 18:04, 2F
抱歉,數字抄錯
但還是不太懂
※ 編輯: leatica 來自: 218.168.152.122 (01/05 18:27)
推
01/05 18:49, , 3F
01/05 18:49, 3F
→
01/05 19:31, , 4F
01/05 19:31, 4F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):