Bre*_*hom 7 python int hex data-conversion python-2.7
对于tkinter GUI,我必须以'0x00'的形式读取十六进制地址以设置I2C地址.我目前正在这样做的方法是将输入作为字符串读取,将字符串转换为整数,然后将该整数转换为实际的Hex值,如下面的部分代码所示:
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)
Run Code Online (Sandbox Code Playgroud)
然后在函数内部:
addr = self.I2CAddress.get()
addrint = int(addr, 16)
addrhex = hex(addrint)
Run Code Online (Sandbox Code Playgroud)
这适用于大多数值,但我的问题是,如果我输入一个小的十六进制值字符串,如'0x01',它会转换为正确的整数1,但然后转换为十六进制值0x1而不是0x01.
我是一名EE,编程经验非常有限,所以非常感谢任何帮助.
Mar*_*ers 13
使用format()功能:
format(addrint, '#04x')
Run Code Online (Sandbox Code Playgroud)
这将输入值格式化为2位十六进制字符串,前导零组成长度,并#包括"标准前缀",0x在本例中.请注意,宽度4包括该前缀.x产生小写六角形字符串; 使用X,如果你需要大写.
演示:
>>> for i in range(8, 12):
... print format(i, '#04x')
...
0x08
0x09
0x0a
0x0b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18982 次 |
| 最近记录: |