Cześć, właśnie przeczytałem rozdział dotyczący operacji na bitach i nie rozumiem po co mamy się tego uczyć. Czy to ma jakieś zastosowanie w programowaniu? Mówię o przesuwaniu bitów, operacjach logicznych itd.
Z tego, co do tej pory zauważyłem, to taka wiedza przydaje się przy tworzeniu bardziej zoptymalizowanych wersji algorytmów.
Przykładowo pod tym linkiem można znaleźć algorytm Euklidesa, który korzysta z przesunięć bitowych: http://edu.i-lo.tarnow.pl/inf/alg/001_search/0006.php.
Takim też najprostszym przykładem jest sprawdzanie, czy liczba jest parzysta. Zamiast pisać:
if (x % 2 == 0)
można sprawdzić w ten sposób:
if ( (x & 1) == 0)
gdyż zwykłe dzielenie jest sporo wolniejsze niż operacje bitowe.
operacjach logicznych
To jest przecież wszędzie.
Takie co mi pierwsze na myśl przychodzi.
maski bitowe, xorswap, flagi, usprawnienia algorytmów/algebry ( @_13th_Dragon lubi się tym bawić, raz potrzebnie raz nie; współcześnie trochę mniej konieczne ze względu na optymalizacje stosowanie prze kompilatory), czy też niskopoziomowe zabawy