私は学校のプロジェクトにエラトステネスのふるいを実装しようとしていますが、ビット配列を使用して実装することにしました。資料を探していると、この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;
そのうちの少なくとも1つについて詳しく説明していただけますか。私は、Cでのビット演算について非常に基本的な知識を持っています(基本的には、それらが「存在する」ことを知っています)。
これは、異なるエンディアンを使用する別のアーキテクチャで機能しますか?前もって感謝します。