Witam.
Chciałbym, żebym ktoś wytłumaczył mi jak działą operacje bitowe & w c++.
Uproszczony kod wygląda tak:
int value = -2147478010;
value = value & 0x7FFFFFFF;
Zmienna value wychodzi: 5638 - co jest ok. Tyle, że nie rozumiem jak to się dzieje konkretnie bo jak wyliczę wszystko to wychodzi mi:
-2147478010 binarnie to 1111111111111111110100111
0x7FFFFFFF binarnie to 1111111111111111111111111
wynik: 1011000000110
Z godnie z tym...
0 & 0 = 0
1 & 0 = 0
0 & 1 = 0
1 & 1 = 1
...zastanawiam się jak to jest możliwe? Już pierwszy bit się nie zgadza, że o reszcie nie wspomnę:)