如何检查C中16位地址的每个位

时间:2015-06-10 18:52:21

标签: c bitmap bitwise-operators

我有一个16位地址0-15,我需要检查对应于它们在C中的位置的位值

例如在15个地方,我有1个,14个有0个,而且是soo!

| 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |

我正在考虑创建16个全新零地址和我正在寻找的位置

2 个答案:

答案 0 :(得分:1)

使用与此类似的宏:

#define CHECK_BIT(x, i) ( ((x) & (1 << (i)) != 0 ) )
如果CHECK_BIT(x, i)的第i位为1,则

true将返回x,否则为false。

答案 1 :(得分:1)

int bitAtPosition(int value, int position){

   return (value & (1 << position)) != 0;
}