Lo puedes hacer de mucha maneras.
Guardas los bit en una cadena. Te inventas otra cadena para comparar. Recorres ambas cadenas con un bucle for y las comparas.
Ejemplo:
string cadena1 = "10001011";
string cadenaParaComprobar = "11111111";
for (int i = 0; i < cadena1.size(); ++i)
{
if (cadena1[i] == cadenaParaComprobar[i])
{
cout << "El bit numero " << i << " esta set" <<endl;
}
}
Puedes usar los operadores bitwise diseñhados para eso de 200 maneras distintas para hacer lo mismo. Se suelen usar para comparar los bits, sumarlos, restarlos, desplazarlos, etc.
Pd: Te pongo ejemplos de los operadores.
resultado = X & Y;
X= 00001111
Y= 00011000
El resultado será:
00001000
resultado = X | Y;
X= 00001111
Y= 00011000
El resultado será:
00011111
resultado = X ^ Y;
X= 00001111
Y= 00011000
El resultado será:
00010111
resultado = 1 << 1;
El resultado será:
00000010
Es decir, 2 en decimal.
resultado = 1 >> 1;
El resultado será:
00000000
0 en decimal. Hechó al uno fuera y no había bits para guardar su valor. Se perdió.