value = 0x80;
compliment = ~value;
// => 0xFFFFFF7F
codes[value] = (value << 24) | (compliment << 16) | (lower_part);
// => 0x80000000 | 0xFF7F0000 | (lower_part)
Fix:
compliment = (~value) & 0xFF;
value = 0x80;
compliment = ~value;
// => 0xFFFFFF7F
codes[value] = (value << 24) | (compliment << 16) | (lower_part);
// => 0x80000000 | 0xFF7F0000 | (lower_part)
Fix:
compliment = (~value) & 0xFF;
Thanks, changing compliment to "(~value) & 0xFF" fixed the problem. Now I'll add the loop back in and test some IR codes!
16 bit int vs 32 bit int.
Doh! Right.