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】二进制字符串异或
63 0
|
6月前
|
Python
Python|二进制链表转整数
Python|二进制链表转整数
45 0
Python-剑指offer(10,11,12)矩形覆盖,二进制中1的个数,数值的整数次方
Python-剑指offer(10,11,12)矩形覆盖,二进制中1的个数,数值的整数次方
|
8月前
|
存储 数据安全/隐私保护 iOS开发
python二进制程序打包为 mac app(dmg)-应用制作
python二进制程序打包为 mac app(dmg)-应用制作
|
8月前
|
XML 编解码 数据格式
python二进制程序打包为 mac app(dmg)-材料准备
python二进制程序打包为 mac app(dmg)-材料准备
python二进制程序打包为 mac app(dmg)-材料准备
|
9月前
|
存储 数据处理 C语言
Python二进制通信:struct、array、ctypes模块比较
Python是一种广泛应用于数据处理和网络编程的语言。在与C语言或其他设备进行二进制通信时,Python需要使用一些专门的模块来转换数据格式。本文将介绍三个常用的模块:struct、array、ctypes,并从结构说明和性能分析两方面进行比较。
166 0
Python二进制通信:struct、array、ctypes模块比较
|
12月前
|
数据采集 存储 算法
python处理smap level2c 数据---根据 iqc_flag进行数据质量控制(二进制&十进制)
最近在处理SMAP_level2c_sss数据时,再进行偏差估计时发现数据存在问题,根据卫星图像对比,发现在数据筛选之前未进行质量控制,因此有较大的问题。再次,进行一定的总结:
python处理smap level2c 数据---根据 iqc_flag进行数据质量控制(二进制&十进制)
|
12月前
|
XML 存储 JSON
Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
“流”是一种抽象的概念,也是一种比喻,水流是从—端流向另一端的,而在python中的“水流"就是数据,数据会从一端"流向”另一端,根据流的方向性,我们可以将流分为输入流和输出流,当程序需要从数据源中读入数据的时候就会开启一个输入流,相反,写出数据也会开启一个输出流,需要写入的数据源可以是文件、内存或者网络等。
137 0
Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
|
12月前
|
算法 C++ 数据格式
Python数据结构与算法(10)---二进制数据结构Struct
Python数据结构与算法(10)---二进制数据结构Struct
115 0
Python数据结构与算法(10)---二进制数据结构Struct
|
12月前
|
网络协议 网络架构 Python
socket库:Python实现组播与发送二进制数据
socket库:Python实现组播与发送二进制数据
329 0
socket库:Python实现组播与发送二进制数据
相关产品
云迁移中心
推荐文章
更多