Witam,
mam pewien dziwny problem z przesunięciem bitowym w następującym kodzie:
unsigned int t = 255;
unsigned int p = 0;
t = t & ( 0xffffffff >> (32 - 0) );
i wszystko jest ok, czyli t w wyniku jest równe 0. Natomiast problem pojawia się w momencie gdy (32 - 0) zastępuje na (32 - p), zmienna p jest jak widać 0. czyli linijka wygląda tak:
t = t & ( 0xffffffff >> (32 - p) );
i wynik jest równy t = 255. Nie mam pojęcia o co chodzi.. Macie jakiś pomysł?
OK problem rozwiązany, zmienna p musi być const.