使用Python 16進制轉10進制


"""
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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM