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

questionAnswers(5)

yourAnswerToTheQuestion