Я ищу рекомендации о том, как сделать побитовую математику в Python.
Основная проблема, с которой я столкнулся, заключается в том, что побитовые операторы python имеют бесконечную точность, что означает, что -1 действительно равно «111 ....... 111». Это не то, что я хочу. Я хочу эмулировать реальное оборудование, которое будет иметь некоторую фиксированную точность, скажем, 32 бита.
Вот некоторые ошибки:
1) -n должен возвращать 32-битный номер дополнения 2 (это легко сделать, взяв младшие 32 бита бесконечной точности -n)
2) n >> 3, должно быть арифметическим сдвигом 32-битного числа, что означает, что если бит 31 равен «1», то биты 31:28 должны быть «1» после сдвига на 3.