Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java concatenating integer values as a byte

Tags:

java

java-me

argb

I have the following 4 integer values which represent ARGB:

int value1 = 0xFF;
int value2 = 68;
int value3 = 68;
int value4 = 68;

I would like to concatenate the values so they represent following:

int test = 0xFF686868;

My current approach is to use:

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

But using this approach the integer values of test1 and test2 do not match, what am I doing wrong? I am limited to J2ME.

like image 534
S-K' Avatar asked Dec 27 '22 09:12

S-K'


1 Answers

You're almost there: all you need to do is shifting the individual bytes into position before OR-ing them together.

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

Don't forget to make your 68s hex for the desired output of 0xFF686868

int value2 = 0x68; // Add 0x to all three of the 68s
like image 77
Sergey Kalinichenko Avatar answered Dec 28 '22 21:12

Sergey Kalinichenko