Python的hex函數可以將任意整數轉換為十六進制數,而且以0x為頭。
我在寫一個代碼需要處理ASCII字符,眾所周知ASCII的范圍是0~255(十六進制數為0x00~0xFF),我嘗試去掉十六進制數最前面的0x,由于hex()返回的類型是字符串,因此加方括號[2:]去掉頭兩個字符,代碼如:
i=78
h=hex(i)
print(h) # 輸出: 0x4e
print(h[2:]) # 輸出: 4e
但在后續(xù)的代碼中,發(fā)現部分十六進制數的長度出現紊亂,經過分析和調試,發(fā)現這個hex函數無法控制位數,對于1~15的數,生成的十六進制數只有一位數,而我需要的是兩位的十六進制數,不足兩位數的就要補零。然后學習一下Python關于數字補零的詳細講解,原來可以用format取代hex,正確的姿勢是:文章來源:http://www.zghlxwxcb.cn/news/detail-511658.html
?'{:02x}'.format(int)?
解釋一下:大括號后面是設定輸出格式,0意味著補零,2是要求輸出兩位數,x代表十六進制數,小寫x生成小寫十六進制數,大寫X生成大寫,format后面的int是十進制整數。文章來源地址http://www.zghlxwxcb.cn/news/detail-511658.html
j=14
print('{:02x}'.format(j)) # 輸出小寫: 0e
print('{:02X}'.format(j)) # 輸出大寫: 0E
print('0x{:02x}'.format(j)) # 加插0x輸出小寫: 0x0e
print('0x{:02X}'.format(j)) # 加插0x輸出大寫: 0x0E
print('0x{:08X}'.format(j)) # 加插0x輸出八位: 0x0000000E
到了這里,關于Python生成十六進制數補零的方法:用format()取代hex()的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!