如何在C中检查16位地址中的每一位
How to check each bit in 16 bit address in C
我有一个 16 位地址 0-15,我需要检查对应于它们在 C 中的位置的位值
例如在第 15 个位置我有 1 个,第 14 个位置有 0 个,依此类推!
|1|0|0|0|1|0|1|0|1|1|1|1|1|0|1|0|
我想创建 16 个全为零的新地址和我正在寻找的位置
使用类似这样的宏:
#define CHECK_BIT(x, i) ( ((x) & (1 << (i)) != 0 ) )
如果 x
的第 i 位是 1,CHECK_BIT(x, i)
将 return true
,否则为 false。
int bitAtPosition(int value, int position){
return (value & (1 << position)) != 0;
}
我有一个 16 位地址 0-15,我需要检查对应于它们在 C 中的位置的位值
例如在第 15 个位置我有 1 个,第 14 个位置有 0 个,依此类推!
|1|0|0|0|1|0|1|0|1|1|1|1|1|0|1|0|
我想创建 16 个全为零的新地址和我正在寻找的位置
使用类似这样的宏:
#define CHECK_BIT(x, i) ( ((x) & (1 << (i)) != 0 ) )
如果 x
的第 i 位是 1,CHECK_BIT(x, i)
将 return true
,否则为 false。
int bitAtPosition(int value, int position){
return (value & (1 << position)) != 0;
}