Я пытался перенести функцию из C в Python и сделать ее легкой для отладки, я бы предпочел, чтобы она выполняла те же операции с ограниченным объемом текстового слова, чтобы сравнить промежуточные результаты. Другими словами, мне бы хотелось что-то вроде:
a = UnsignedBoundedInt(32, 399999)
b = UnsignedBoundedInt(32, 399999)
print(a*b) # prints 1085410049 (159999200001 % 2**32)
Какой лучший способ достичь этого, чтобы все операции (включая побитовые сдвиги) работали так же, как в C?