Witam, próbuję dokonać operacji arytmetycznych na bitach.
Próbuję zrobić operację &, ale coś nie wychodzi:
unsigned char *d = new unsigned char[2];
unsigned char *dR = new unsigned char[2];
d[0] = 31;
d[1] = 0;
dR[0] = d[0] & 00111111;
dR[1] = (d[0] >> 7) & 1;
std::cout << "Wynik operacji: " << std::dec << (unsigned short)dR[1] << " " << std::dec << (unsigned short)dR[0] << "\n";
To powinno być chyba rozwiązane tak:
0001 1111
0011 1111 &
0001 1111 =
A mój program wypisuje 0 9.
Co nie tak rozumiem, lub źle robię?