""" 16進制轉10進制 """ # str="A5 42 D2 00 4A 00 01 00 01 F4 00 32 00 32 00 50 01 0C 00 01 00 01 F4 00 32 00 32 00 50 01 01 00 01 00 01 F4 01 F4 01 F4 01 F4 01 F4 00 32 00 32 00 32 00 32 00 32 00 32 00 32 00 32 00 32 00 32 00 50 01 00 00 01 F4 00 32 00 32 50 00 00 00 D2 41 5A " str="" with open("bitChange",mode="r",encoding="UTF-8") as f: #從文件里讀數據 str= f.read() lst=str.split(" ")#根據空格切割 lst=lst[5:len(lst)-4]#根據自己實際情況來做,我這里是根據我這邊的通訊協議格式來的 dic={} count=0 for c in lst: dic[count]=c count+=1 print(dic) print(lst) #16進制轉10進制 new_Lst=[]#得到需要的16進制 starW= int(input("請輸入起始位置:"))-1 lenW=int(input("請輸入長度:")) new_Lst=lst[starW:lenW+starW] new_Str="".join(new_Lst) print("16進制:{}".format(" ".join(new_Lst))) new_Str=new_Str[::-1] resoult={} resoultCount=0 strs="" while resoultCount<len(new_Str)-1: if new_Str[resoultCount]=="F": resoult[resoultCount]=15 elif new_Str[resoultCount]=="E": resoult[resoultCount] = 14 elif new_Str[resoultCount] == "D": resoult[resoultCount] = 13 elif new_Str[resoultCount] == "C": resoult[resoultCount] = 12 elif new_Str[resoultCount] == "B": resoult[resoultCount] = 11 elif new_Str[resoultCount] == "A": resoult[resoultCount] = 10 else: resoult[resoultCount] = new_Str[resoultCount] resoultCount+=1 sum=0 for k,v in resoult.items(): sum+=int(v)*16**k print("10進制:{}".format(sum))
進制之間的轉換可以訪問https://www.cnblogs.com/sl372/p/10825885.html