从u32int读取一点

时间:2013-12-15 13:31:11

标签: c++ int

我输入一个包含无符号32位int的值,我想读取第19位。我该怎么做?

这是我想从以下位置读取的输入:

uint32 Input = u32AHI_DioReadInput();
int x = ??? 

我尝试使用Input(19)input[19],但我没有工作,因为第一个是函数,第二个被认为是数组。我知道我应该和一些比特并改变它们,但我只是不知道我该怎么做。

1 个答案:

答案 0 :(得分:7)

当您需要读取一个位n时,将数字向右移动n个位置,并删除除最后一个位之外的所有位,如下所示:

int x = (Input >> n) & 1;

>> n将内容向右移n位; & 1按位进行" AND" with one(其二进制表示只有最低位设置为1,所有其他位包含零);