I am currently trying to extract some bits from an address called addr
with a 32 bit mask called mask
into another variable called result
as follows
int addr = 7;
int x = 0;
uint32_t mask = 0xFFFFFFFF;
result = addr & (mask >> (32 - x));
I am expecting result to be 0 when x = 0, and this is confirmed on online bitshift calculators. however in C code, result
is 1. Why is that?