Java将整数值连接为字节

4
我有以下4个整数值,它们表示ARGB:
int value1 = 0xFF;
int value2 = 68;
int value3 = 68;
int value4 = 68;

我想要将这些值连接起来,使它们表示以下内容:
int test = 0xFF686868;

我目前的做法是使用:

int test2 = 0xFF | value1 | value2 | value3;

但是使用这种方法,test1和test2的整数值不匹配,我做错了什么?我受到J2ME的限制。

1个回答

10

你已经接近成功了:你所需要做的就是将每个字节移动到正确的位置,然后进行 OR 操作。

int test2 = (value1 << 24) | (value2 << 16) | (value3 << 8) | value4;

不要忘记将你的 68 转换为十六进制以获得期望输出 0xFF686868

int value2 = 0x68; // Add 0x to all three of the 68s

你能解释一下我为什么必须移动字节吗?另外,我要如何将68转换为0x68?谢谢 - S-K'
2
@S-K' 将左移想象为在右侧添加零。在十六进制表示法中,左移4位相当于在末尾添加一个零。左移24位添加6个零,左移16位添加4个零,左移8位添加2个零。由于与零进行“OR”运算会产生原始数字,因此移位和“OR”字节可让您构造一个四字节数字。 - Sergey Kalinichenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接