近期在调试单片机时需要观看端口数据,需要将16进制数据转化成10进制数据。在网上找了蛮多都只能实现单个数据的转化,于是便用PYTHON编写了一份。
import tkinter as tk
root=tk.Tk()
root.title('16进制与10进制互转(每个数据空格间隔) by ivRobot')
root.geometry("850x400")
root.resizable(0,0)
def converse16to10():
try:
t2.delete(1.0,'end')
nums = t1.get(1.0,'end').split(" ")
#print(nums)
for i in nums:
if i !='\n':
t2.insert('end',int(i, 16))
t2.insert('end', ' ')
except:
pass
def converse10to16():
try:
t1.delete(1.0,'end')
nums = t2.get(1.0,'end').split(" ")
#print(nums)
for i in nums:
if i !='\n':
if len(hex(int(i)))==3:
t1.insert('end','0'+hex(int(i))[-1].upper())
t1.insert('end', ' ')
elif len(hex(int(i)))==4:
t1.insert('end', hex(int(i))[-2:].upper())
t1.insert('end', ' ')
else:
pass
except:
pass
def delete16():
t1.delete(1.0,'end')
def delete10():
t2.delete(1.0,'end')
t1=tk.Text(root,font=("黑体",16),width=60,height=6)
t1.place(x=100,y=50)
t2=tk.Text(root,font=("黑体",16),width=60,height=6)
t2.place(x=100,y=250)
b1=tk.Button(root,text='16转10 ↓', font=("黑体",16),width=10,command=converse16to10)
b1.place(x=250,y=200)
b2=tk.Button(root,text='10转16 ↑', font=("黑体",16),width=10,command=converse10to16)
b2.place(x=450,y=200)
l1=tk.Label(root,text='16进制', font=("黑体",16),)
l1.place(x=10,y=100)
l2=tk.Label(root,text='10进制', font=("黑体",16),)
l2.place(x=10,y=300)
b3=tk.Button(root,text='清空16', font=("黑体",16),width=6,command=delete16)
b3.place(x=10,y=130)
b2=tk.Button(root,text='清空10', font=("黑体",16),width=6,command=delete10)
b2.place(x=10,y=330)
root.mainloop()
用tkinter制作界面,2个text分别存放10进制和16进制数据,数据之间用空格分开,16进制转化10进制主要用int()函数来处理,10进制转化16进制用hex()函数,然后处理掉0x标志和大写。
最后添加了清空按键,实现清空text内容。
pyinstaller打包好的工具也上传了。
点击这里下载。