作者leatica (噗妞兔姆妞)
看板java
标题[问题] 位元运算问题,将byte填进int内
时间Tue Jan 5 17:25:22 2010
大家好
最近初学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
1F:推 rofellosx:不然你认为tmp_B变多少.. 01/05 17:46
2F:→ leatica:我是希望tmp_B变成0xFFFF0000,这值应该不是-128吧 01/05 18:04
抱歉,数字抄错
但还是不太懂
※ 编辑: leatica 来自: 218.168.152.122 (01/05 18:27)
3F:推 snowlike:(原本是-128)tmp_A&0xff<<16,建议写成tmp_A=(byte)255 01/05 18:49
4F:→ leatica:谢谢楼上 01/05 19:31