Java将整数值连接为一个字节

S-K*_*-K' 4 java java-me argb

我有以下4个表示ARGB的整数值:

int value1 = 0xFF;
int value2 = 68;
int value3 = 68;
int value4 = 68;
Run Code Online (Sandbox Code Playgroud)

我想连接这些值,以便它们代表以下内容:

int test = 0xFF686868;
Run Code Online (Sandbox Code Playgroud)

我目前的做法是使用:

int test2 = 0xFF | value1 | value2 | value3;
Run Code Online (Sandbox Code Playgroud)

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

das*_*ght 10

你几乎就在那里:你需要做的就是将各个字节移到OR一起之前.

int test2 = (value1 << 24) | (value2 << 16) | (value3 << 8) | value4;
Run Code Online (Sandbox Code Playgroud)

不要忘记为你68想要的输出制作你的十六进制0xFF686868

int value2 = 0x68; // Add 0x to all three of the 68s
Run Code Online (Sandbox Code Playgroud)

  • @SK'考虑向左移动为向右添加零.在十六进制表示法中,4的移位与向末尾添加一个零相同.移位24加上6个零,16 - 4个零,加上8 - 2个零.由于`OR`ing为0会产生原始数字,因此移位和"OR"字节可以构造一个四字节数字. (2认同)