如何在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;
}