如何考虑 Python 的负数按位操作?

共1个回答, 标签: python python-3.x bit-manipulation negative-number

我发现很难考虑 Python (和 Python3) 的无限精度负数和按位运算。它不是 32 位或 64 位。的1左边的可以被认为是 “无限多”。这不是很确定,这就是为什么有时很难思考它是如何工作的。

似乎一种可行的方法是: 总是让它更多,比如如果你在处理有 67 位的正整数, 然后想想他们的操作与负数有 96 位或 128 位。这是一个正确的思考方式吗?规格中有什么说明它是如何工作的或者应该考虑的吗? (例如内部实现只考虑正整数,而只将负数视为 “多 1 位”?)

第1个答案
    There are many ways to implement the infinite precision, but you should have raise your actual situation here to obtain the answer.

我也不认为你不理解左边无限多 1 的概念。 正整数: 回退未保存的位为 0,从最小意义保存所有的 1 位 负整数: 回退未保存的位为 1,从最小意义保存所有 0 位

当您需要对 2 个无限精度的执行逐位操作时,您只需要对回退位进行操作。

从你的问题,我不认为你真的需要关于 Python 如何实现这一点的技术细节.

相关问题

通过随机抽样其他列数据创建新列 如何使用熊猫获得包括每一个组合的计数 如何有效地展开矩阵的值与小块? 是否有任何巨无意思的方法来查找阵列中特定元组元素的平均值? 如何在元素列表中找到最大的数字, 可能不是唯一的? 如何以 Pythonic 的方式向上移动 n 个目录? 这个位运算符代码是副作用 (K & R C book 中使用的术语) 还是与机器相关的处理指令? (X | y)-y 为什么不能简单地是 x 或者甚至是 'x | 0' 将 64 位整数中的 8 位整数并行减去 1 当签名为末尾时,将字符串格式的负数转换为数字 如何考虑 Python 的负数按位操作?