如何在Python中将一个2字节长的字符串转换为整数
我接手了一个Python程序,想要对它进行扩展。
我从中提取了一个两个字节长的字符串,叫做pS。
pS的第一个字节是0x01,第二个字节是0x20,换算成十进制就是288。
我一直在尝试把它的值转换成整数,使用了类似下面的代码:
x = int(pS[0:2], 16) # this was fat fingered a while back and read [0:3]
但是我得到了这样的提示:
ValueError: invalid literal for int() with base 16: '\x01 '
我和另一位C语言程序员今天一直在网上查资料,想要让这个代码正常工作。
请给点建议。
4 个回答
0
struct.unpack( "h", pS[0:2] )
但是它会以数组的形式出现。
struct.unpack( "h", pS[0:2] )[0]
这个代码可以直接获取值。
5
你可以使用 ord
函数把字符转换成它们的字符编码,然后以合适的方式把这些编码加在一起:
x = 256*ord(pS[0]) + ord(pS[1])
22