Witam mam pytanie do przykładu na operacje bitand
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void itob(unsigned a)
{
for(unsigned m = 8; m > 0; m >>= 1){ cout << ((a & m) ? "1" : "0");cout << "m" << m << endl;}
}
int main()
{
srand(time(NULL));
unsigned x = rand() % 16;
unsigned y = rand() % 16;
cout << x << endl;
cout << y << endl;
cout << (x | y) << endl;
itob(x);
cout << " | ";
itob(y);
cout << " = ";
itob(x | y); // tutaj dokonujemy alternatywy bitów
cout << endl;
return 0;
}
chodzi mi o to że nie wiem dokładnie o co chodzi w:
for(unsigned m = 8; m > 0; m >>= 1){ cout << ((a & m) ? "1" : "0");cout << "m" << m << endl
bo mam m równe 8 później 4 , 2 i 1 czy to chodzi o to ze to są 4 pierwsze bity i to ze po 8 jest cztery to odpowiada przesuniecie bitu w prawo m >>=1?
i jeszcze (a & m) powiedzmy ze mam liczbę a = 16 w ogóle tego nie kumam?