I have this code:
 int code = 0x92011202;
 int a = (code & 0xF0000000) >> 28;
 int b = (code & 0x0F000000) >> 24;
 // ..
 int n = (code & 0x0000000F);
But if most significant bit of code is equal to 1 (from 9 to F) a comes negative value. All other variables
 works fine.
Why this happen?
 
     
     
     
    