我正在寻求在Python中执行位运算的建议。
我遇到的主要问题是Python的位运算符具有无限精度,这意味着-1实际上是“111.......111”。这不是我想要的。我想模拟真正的硬件,它将具有一些固定的精度,比如32位。
以下是一些需要注意的事项:
1)-n应返回一个32位的二进制补码数(这可以通过获取无限精度的-n的低32位轻松实现)
2)n >> 3应该是32位数字的算术右移,这意味着如果位31为'1',则在向右移3位后,位31:28应为'1'。
我遇到的主要问题是Python的位运算符具有无限精度,这意味着-1实际上是“111.......111”。这不是我想要的。我想模拟真正的硬件,它将具有一些固定的精度,比如32位。
以下是一些需要注意的事项:
1)-n应返回一个32位的二进制补码数(这可以通过获取无限精度的-n的低32位轻松实现)
2)n >> 3应该是32位数字的算术右移,这意味着如果位31为'1',则在向右移3位后,位31:28应为'1'。