我正在尝试为学校项目实施 Erathostenes 筛,我决定使用位数组来实现。当我在搜索材料时,我遇到了这 3 个宏,它们完美地工作,但我无法真正阅读(理解)它们。
#define ISBITSET(x,i) ((x[i>>3] & (1<<(i&7)))!=0)
#define SETBIT(x,i) x[i>>3]|=(1<<(i&7));
#define CLEARBIT(x,i) x[i>>3]&=(1<<(i&7))^0xFF;
请您至少向我详细解释其中一个,我对 C 中的按位运算有非常基本的了解(基本上我知道它们“存在”)。
这是否适用于使用不同字节序的另一种架构?提前致谢。