Я изучал побитовые операторы, и они имеют смысл до тех пор, пока с ними не используется одинарное дополнение. Может кто-нибудь объяснить мне, как это работает?
Например, это имеет смысл, однако остальные вычисления, кроме них, не делают:
1&~0 = 1 (~0 is 1 -> 1&1 = 1)
~0^~0 = 0 (~0 is 1 -> 1^1 = 0)
~1^0 = 1 (~1 is 0 -> 0^1 = 1)
~0&1 = 1 (~0 is 1 -> 1&1 = 1)
~0^~1 = 1 (~0 is 1, ~1 is 0 -> 1^0 = 1)
~1^~1 = 0 (~1 is 0 -> 0^0)
Остальные полученные результаты отрицательны(или очень большое число, если оно не подписано) или противоречит логике, которую я знаю. Например:
0&~1 = 0 (~1 = 0 therefor 0&0 should equal 0 but they equal 1)
~0&~1 = -2
~1|~0 = -1
и т. Д. Где-нибудь вы можете указать мне, чтобы узнать об этом?