Nigdy nie lubilem operacji na bitach. Jak wyzerowac konkretny bit w liczbie. Przykladowo mam int liczba; int flaga; Teraz chce wyzerowac bit rowny flaga w liczba. Do glowy mi przychodzi tyklo:
CODE
liczba & (0xFFFFFFFFFFFF ^ flaga)
Tylko ile tych 'F' trzeba
hao
10.12.2005 - 21:22
CODE
int maska; // to zostanie wyzerowane, jeżeli bit ustawiasz w flaga, musi być też ustawiony tutaj int flaga; // to zostanie ustawione
liczba = (liczba & ~maska) | (maska & flaga);
W ten prosty sposób podając jako maskę flagi które chcesz zmieniać, żeby wyzerować wszystkie bity z maski podajesz jako flagę 0, żeby ustawić wszystkie bity z maski - podajesz -1 (minus jeden)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.