如何将字节值 "b'27 '" 转换为 int 27
How to transform a byte value "b'27 '" into int 27
如何获取字节变量中的数字?
我必须使用串口和 python 将数据从 Arduino 传输到 Raspberry Pi。我成功隔离了变量,但它的类型是字节,如何将其转换为 int 变量?
变量是
b'27'
但我想得到
27
我试过了
print(int.from_bytes(b'\x27', "big", signed=True))
但是我没有成功得到正确的数字 27
您可以使用 decode
将其变为常规 str
然后使用 int
:
x = b'27'
y = int(x.decode()) # decode is a method on the bytes class that returns a string
type(y)
# <class 'int'>
或者:
y = int(b'27')
type(y)
# <class 'int'>
根据@chepner 的评论,您需要注意奇怪的编码可能会破坏后一种方法的情况,而对于非 utf-8 编码,它可能会破坏两者
为了补充 C.Nivs
给出的有用且实用的答案,我想补充一点,如果您想使用 int.from_bytes()
检索值 27,您需要执行以下操作:
int.from_bytes(b'\x1B', "big", signed=True)
因为 '\x27'
实际上是值 39 的十六进制值。网上有很多 conversion tables 可以帮助交叉引用十进制值和十六进制值。这两种形式仅对小于 10 的值 1:1
如何获取字节变量中的数字?
我必须使用串口和 python 将数据从 Arduino 传输到 Raspberry Pi。我成功隔离了变量,但它的类型是字节,如何将其转换为 int 变量?
变量是
b'27'
但我想得到
27
我试过了
print(int.from_bytes(b'\x27', "big", signed=True))
但是我没有成功得到正确的数字 27
您可以使用 decode
将其变为常规 str
然后使用 int
:
x = b'27'
y = int(x.decode()) # decode is a method on the bytes class that returns a string
type(y)
# <class 'int'>
或者:
y = int(b'27')
type(y)
# <class 'int'>
根据@chepner 的评论,您需要注意奇怪的编码可能会破坏后一种方法的情况,而对于非 utf-8 编码,它可能会破坏两者
为了补充 C.Nivs
给出的有用且实用的答案,我想补充一点,如果您想使用 int.from_bytes()
检索值 27,您需要执行以下操作:
int.from_bytes(b'\x1B', "big", signed=True)
因为 '\x27'
实际上是值 39 的十六进制值。网上有很多 conversion tables 可以帮助交叉引用十进制值和十六进制值。这两种形式仅对小于 10 的值 1:1