gpt4 book ai didi

python - 在 Python 中将整数转换为 2 字节的十六进制值

转载 作者:太空狗 更新时间:2023-10-29 21:26:55 25 4
gpt4 key购买 nike

对于 tkinter GUI,我必须读入“0x00”形式的十六进制地址以设置 I2C 地址。我目前的做法是将输入读取为字符串,将字符串转换为整数,然后将该整数转换为实际的十六进制值,如下面的部分代码所示:

GUI 初始化:

self.I2CAddress=StringVar()
self.I2CAddress.set("0x00") #Sets Default value of '0x00'
Label(frame, text="Address: ").grid(row=5, column=4)
Entry(frame, textvariable=self.I2CAddress).grid(row=5, column=5)

然后在函数内部:

addr = self.I2CAddress.get()   
addrint = int(addr, 16)
addrhex = hex(addrint)

这适用于大多数值,但我的问题是,如果我输入一个小的十六进制值字符串,例如“0x01”,它会转换为正确的整数 1,但随后会转换为十六进制值 0x1,而不是0x01.

我是一名 EE,编程经验非常有限,因此非常感谢任何帮助。

最佳答案

使用 format() function :

format(addrint, '#04x')

这会将输入值格式化为 2 位十六进制字符串,前导零构成长度,# 包括“标准前缀”,在本例中为 0x .请注意,宽度 4 包括该前缀。 x 生成小写的十六进制字符串;如果需要大写,请使用 X

演示:

>>> for i in range(8, 12):
... print format(i, '#04x')
...
0x08
0x09
0x0a
0x0b

关于python - 在 Python 中将整数转换为 2 字节的十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16742022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com