我目前正试图从一个名为 addr
的地址中,使用一个名为 mask
的32位掩码来提取一些位,并将其存储到另一个变量 result
中,方法如下:
int addr = 7;
int x = 0;
uint32_t mask = 0xFFFFFFFF;
result = addr & (mask >> (32 - x));
当x=0时,我希望结果为0,在在线位移计算器上已经确认过了。但是在C代码中,result
的值是1。为什么会这样呢?
我目前正试图从一个名为 addr
的地址中,使用一个名为 mask
的32位掩码来提取一些位,并将其存储到另一个变量 result
中,方法如下:
int addr = 7;
int x = 0;
uint32_t mask = 0xFFFFFFFF;
result = addr & (mask >> (32 - x));
当x=0时,我希望结果为0,在在线位移计算器上已经确认过了。但是在C代码中,result
的值是1。为什么会这样呢?
addr
的类型是什么? - VillageTech