【发布时间】:2025-12-11 13:55:01
【问题描述】:
我正在使用 Python 解决一项任务。
我需要计算给定值中非零位的数量。当我使用函数 bin() 并计算“1”的数量时,我对正数没有任何问题,但无法理解负数有什么问题。例如,-1 等于11111111111111111111111111111111,但是当我使用函数 bin() 时,它会给出“-0b1”。请告诉我如何正确转换它。
【问题讨论】:
-
Python 具有任意精度整数,因此您对二进制补码算法的期望是不正确的。也许 pack 或 struct 可以帮助你。
-
"例如,-1 等于 ..." 不正确。它等于
0b11...11。但由于无法表示无限位数,我们只使用-0b1代替。
标签: python