Python获取数字的二进制值

简介: 目标想要获取一个整形数字的二进制表示bin 内置函数看一下官方的解释Convert an integer number to a binary string prefixed with “0b”. The result is a valid Python expression. If x is not a Python int object, it has to define an index() method that returns an integer. Some examples。

目标

想要获取一个整形数字的二进制表示

bin 内置函数

看一下官方的解释

Convert an integer number to a binary string prefixed with “0b”. The result is a valid Python expression. If x is not a Python int object, it has to define an index() method that returns an integer. Some examples。

>>> bin(3)
'0b11'
>>> bin(-10)
'-0b1010'

If prefix “0b” is desired or not, you can use either of the following ways.

>>> format(14, '#b'), format(14, 'b')
('0b1110', '1110')
>>> f'{14:#b}',f'{14:b}'
('0b1110', '1110')

可以看到bin函数返回二进制数字表示的形式是采用了负号,而不是补码的形式。那么如何获得补码形式的二进制表示呢,很简单只需要对数值进行与操作就可以。

>>> bin(-27 & 0b1111111111111111)
'0b1111111111100101'

这个例子手工指定了位数,也可以用下面带参数的形式

def bindigits(n, bits):
    s = bin(n & int("1"*bits, 2))[2:]
    return ("{0:0>%s}" % (bits)).format(s)

>>> print bindigits(-31337, 24)
111111111000010110010111

参考资料:
1、Python bin
2、Two's Complement Binary in Python?
3、integers

相关文章
|
6月前
|
存储 Python
python的二进制,八进制以及十六进制
python的二进制,八进制以及十六进制
|
3月前
|
存储 Python
python二进制类型 (Binary Types)
【8月更文挑战第3天】
197 8
|
3月前
|
Python
python中的二进制、八进制、十六进制的相互转换
python中的二进制、八进制、十六进制的相互转换
63 0
|
6月前
|
数据处理 Python
python进行二进制数据处理的方法
python进行二进制数据处理的方法
98 0
|
3月前
|
JSON 缓存 安全
Python pickle 二进制序列化和反序列化 - 数据持久化
Python pickle 二进制序列化和反序列化 - 数据持久化
57 0
|
5月前
|
算法 Java Go
【经典算法】LeetCode 67. 二进制求和(Java/C/Python3/Golang实现含注释说明,Easy)
【经典算法】LeetCode 67. 二进制求和(Java/C/Python3/Golang实现含注释说明,Easy)
66 2
|
6月前
|
Python
python 二进制与字符编码详解
python 二进制与字符编码详解
54 0
|
6月前
|
Python
Python的整型在计算中的精度可以通过使用二进制或十进制表示来体现
【5月更文挑战第6天】Python整型支持十、二、八、十六进制表示,其中十进制默认,二进制(0b前缀)、八进制(0o前缀)、十六进制(0x前缀)。计算时以二进制精度处理,确保结果准确。例如:123的二进制是0b1111011,八进制是0o173,十六进制是0x7b。
39 0
|
6月前
|
数据可视化 Python
Python的分子模拟动态促进DF Theory理论对二进制硬盘系统的适用性
Python的分子模拟动态促进DF Theory理论对二进制硬盘系统的适用性
|
6月前
|
人工智能 机器人 测试技术
【python】python十进制转二进制(不使用内置方法)
【python】python十进制转二进制(不使用内置方法)
下一篇
无影云桌面