Java中用byte对RGB表示大于127时怎么办

来源:百度知道 编辑:UC知道 时间:2024/06/23 05:24:41
Java好像没有无符号数。那RGB最大值是255.按理说一个byte类型就能表示完,但byte有符号数最大是127。那怎样对应呢?应该怎么处理呢。
Java颜色数组好像只支持byte类型。
详细一点:是J2ME的3D顶点颜色数组中。只能用byte型,不然抛出:
java.lang.IllegalArgumentException:
at javax.microedition.m3g.VertexBuffer.setColors(+5)。
查了一下:VertexBuffer.setColors中the component size must be 8 bits!
请问怎么表示出大于127的值呢?

在csdn上找到了答案:

unsigned byte = byte & 0xFF

0~255的颜色用byte-128~127表示
其中0~127对应0~127
-128~-1 对应128~255

注:把答案粘贴上就给分!!!

unsigned byte = byte & 0xFF,0~255的颜色用byte-128~127表示 其中0~127对应0~127 ,-128~-1 对应128~255。
计算机中负值是通过补位的方式进行换算。

我记得可以是int的吧
Color(int r, int g, int b)
用指定的红色、绿色和蓝色值创建一种不透明的 sRGB 颜色,这三个颜色值都在 0-255 的范围内。

float的也可以啊

RGB可以使用int和float来表示的,不是byte,所以255是足够的,JAVA的颜色谁说的只支持避byte类型,你可以去查下API就知道了。

unsigned byte = byte & 0xFF

0~255的颜色用byte-128~127表示
其中0~127对应0~127
-128~-1 对应128~255

j2me一切都从节约资源出发.哈哈..??