mozecie prosze sprawdzic ponizszy kod napisany w c++ - mam problem, bo dobrze bity sie wyswietlaja, jednak nie obracaja sie i nie przesuwaja w prawo… Zamieszczam ponizej dwie funkcje:
Znalazlem rowniez inny kod, ktoreg niestety nie potrafilem uzyc
Przesunięcie w prawo robi się operatorem >> np. y = x >> n; przesunie x o n bitów w prawo i zapisze wynik w y.
Można też użyć >>= np. x >>= n; przsunie x o n bitów w prawo i zapisze wynik w x.
Do obrotów bitowych nie ma operaora ale można go złóżyć z dwóch przesunięć np. y = (x >> n) | (x << (32 - n)); obróci x o n bitów w prawo i wynik zapisze w y. 32 to rozmiar inta w bitach.
Przy operacjach na bitach lepiej uzywać unsigned inta niz zwykłego inta. I pamiętaj żeby n nie było większe od liczby bitów zmiennej.
Podobnie robisz przy przesunięciach i obrotach w lewo. To nie ma prawa nie działać(no chyba, że odłączysz zasilanie :P).
PS. Wyświetlanie bitów:
for(int i = 31; i >= 0; --i)
cout << ((x >> i) & 1);