我有一个有符号的值,例如-7368817 当我投它以字节这将是这样的:-113 我将它转换为无符号字节再见& 0xff
,它将会像现在 我操纵这个字节值和我后想整个回归!得到新字节的有符号整数。 :)signed int to unsigned byte,反之亦然
更新
原委:
我有一个形象,这是8位的深度和灰度!这意味着所有像素使用1个字节
BufferedImage image = ImageIO.read(new File("my_grayscal_8bit_photo.jpg"));
int intPixel = image.getRGB(1, 1);
现在提出我需要一些位操作在这个像素,但因为它是INT我必须将它先字节:
byte bytePixel = (byte) intPixel;
,并使其签名:
int intPixel2 = bytePixel & 0xff;
现在我做我的位操作,并希望将其转换为int,做:
image.setRGB(1, 1, neworiginalint);
我假设你知道java没有无符号类型(除char之外) – Bozho 2011-04-20 08:02:26
而且一个字节只能保存256个值,即8位的2^8。恕我直言,你可以使用字节作为无符号,如果你想,你只是不会从Java获得很多帮助。 – 2011-04-20 08:06:14
顺便说一句:如果你可以将每个可能的值放入一个1字节的'byte'中,那么有一个4字节的'int'会是什么意思;) – 2011-04-20 08:10:00