如何解决如何在 Python 中将字符串转换为十六进制?
我使用 pyqt5 行编辑框作为我的输入框。我想从输入框中获取输入并将其从字符串转换为十六进制以发送到串行捕获。例如,我这样做了,但没有成功:
a = hex(self.slave1.text())
b = hex(self.function1.text())
c = hex(self.address_msb1.text())
d = hex(self.address_lsb1.text())
e = hex(self.register_msb1.text())
f = hex(self.register_lsb1.text())
g = hex(self.crc_lsb1.text())
h = hex(self.crc_msb1.text())
hexConvert = [a,b,c,d,e,f,g,h]
想象一下:
a = "01"
b = "03"
c = "00"
d = "0A"
e = "00"
f = "04"
g = "64"
h = "0B"
我的预期输出是
[0x01,0x03,0x00,0x0A,0x04,0x64,0x0B]
解决方法
hex() 函数将指定的整数转换为十六进制字符串表示。
使用 int(x,base)
以 16 为基数将字符串 x 转换为整数。将整数作为数字调用 hex(number) 将其转换为十六进制。
hex_string = "0xAA"
"0x" also required
an_integer = int(hex_string,16)
hex_value = hex(an_integer)
print(hex_value)
输出
0xaa
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。