Python: 32-bitowa arytmetyka bez znaku
Próbując odpowiedzieć na inny post, którego rozwiązanie dotyczy adresów IP i masek sieciowych, utknąłem z arytmetyką bitową.
Czy w Pythonie istnieje standardowy sposób wykonywania operacji bitowych AND, OR, XOR, NOT przy założeniu, że dane wejściowe są liczbami całkowitymi lub długimi „32-bitowymi” (być może ujemnymi) i że wynik musi być długi w zakresie [ 0, 2 ** 32]?
Innymi słowy, potrzebuję działającego odpowiednika Pythona dla operacji bitowych C między długimi znakami bez znaku.
EDYTUJ: konkretny problem to:
>>> m = 0xFFFFFF00 # netmask 255.255.255.0
>>> ~m
-4294967041L # wtf?! I want 255