python - 如何在 python 中获取负数的二进制表示

标签 python bit

<分区>

当我输入 bin(-3) 时,它只显示 -0b11

这不是我想要的。 它只是保留 - 符号并转换数字。 我想要负数的实际表示。

Python 中有什么方法可以做到这一点吗?

最佳答案

根据你想要多少个二进制数字,从一个数字中减去 (2n):

>>> bin((1 << 8) - 1)
'0b11111111'
>>> bin((1 << 16) - 1)
'0b1111111111111111'
>>> bin((1 << 32) - 1)
'0b11111111111111111111111111111111'

更新

使用下面的表达式,你可以覆盖正例和负例:

>>> bin(((1 << 32) - 1) & -5)
'0b11111111111111111111111111111011'

关于python - 如何在 python 中获取负数的二进制表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28383585/

相关文章:

python - 使用 Python 自动输入以暴力破解在 cli 中运行的程序

c - 移位取消而不是预期的行为

java - Bit.ShiftRight - 在 Java 中等效

java - 在 Java 中更改 32 位整数的特定位

java - 为什么在 JAVA 中按位 AND with byte 这样做?

python - 如何使用 pandas.read_sql 中的参数在日期之间从 SQLite 表中使用 Python pandas 导入数据

python - 将列添加到 DataFrame 时忽略列长度

python - django rest 框架 - 使用 detail_route 和 detail_list

c++ - 简化 (A & B) && !(A & C)

python - 在 x 轴上绘制带有标签而不是计数的直方图 matplotlib