あなたが何を求めているのかよくわかりませんが、バイト内の個々のビットにアクセスする方法を教えてもらえます。これはおそらくビットセットが行うことです。次のコードは私自身のものではなく、Microsoft の仕様です (!)。
構造体を次のように作成します。
struct Byte
{
bool bit1:1;
bool bit2:1;
bool bit3:1;
bool bit4:1;
bool bit5:1;
bool bit6:1;
bool bit7:1;
bool bit8:1;
}
このコードの ':1' 部分はビットフィールドです。http://msdn.microsoft.com/en-us/library/ewwyfdbe(v=vs.80).aspx
変数が占めるビット数を定義するため、この構造体には 1 を占める 8 つのブール値があります。一口ずつ。したがって、合計で、'Byte' 構造体のサイズは 1 バイトになります。
char などの 1 バイトのデータがある場合、このデータを次のように Byte オブジェクトに格納できます。
char a = 'a';
Byte oneByte;
oneByte = *(Byte*)(&a); // Get the address of a (a pointer, basically), cast this
// char* pointer to a Byte*,
// then use the reference operator to store the data that
// this points to in the variable oneByte.
これで、oneByte の bool メンバー変数にアクセスすることで、個々のビットにアクセス (および変更) できるようになりました。変更されたデータを char に再度格納するには、次のようにします。
char b;
b = *(char*)(&oneByte); // Basically, this is the reverse of what you do to
// store the char in a Byte.
この手法のソースを見つけて、クレジットが必要な場合はクレジットを与えるようにします。
また、繰り返しますが、この回答があなたにとって役立つかどうかは完全にはわかりません. あなたの質問は、「個々のビットへのアクセスは内部でどのように処理されますか?」と解釈しました。