我有一个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个全新零地址和我正在寻找的位置
答案 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;
}