Question

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.

Was it helpful?

Solution

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top