如何在python中将字节对象转换为十进制或二进制表示形式? [英] How can I convert bytes object to decimal or binary representation in python?
本文介绍了如何在python中将字节对象转换为十进制或二进制表示形式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在python 3.x中将字节类型的对象转换为二进制表示形式。
I wanted to convert an object of type bytes to binary representation in python 3.x.
例如,我要转换字节对象 b'\x11'
转换为二进制形式的 00010001
的二进制形式(或十进制的17)。
For example, I want to convert the bytes object b'\x11'
to the binary representation 00010001
in binary (or 17 in decimal).
我尝试过:
print(struct.unpack("h","\x11"))
但是我得到:
error struct.error: unpack requires a bytes object of length 2
推荐答案
从Python 3.2开始,您可以使用 int.from_bytes
。
Starting from Python 3.2, you can use int.from_bytes
.
第二个参数, byteorder
,指定您的字节字符串的 endianness 。可以是大 或
小
。您还可以使用 sys.byteorder
来获取主机的本机字节序。
Second argument, byteorder
, specifies endianness of your bytestring. It can be either 'big'
or 'little'
. You can also use sys.byteorder
to get your host machine's native byteorder.
import sys
int.from_bytes(b'\x11', byteorder=sys.byteorder) # => 17
bin(int.from_bytes(b'\x11', byteorder=sys.byteorder)) # => '0b10001'
这篇关于如何在python中将字节对象转换为十进制或二进制表示形式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文