Python 十六进制数与ascii码的转换
有時候我們可能會需要做十六進制數與ascii碼的轉換,但是上網搜索轉換器需要耗費一定時間,有時候還不一定能滿足自己的需要
例如,如何將'6a 6b 6c 6d'轉換為相應的ascii碼字符?可能我們可以去查ascii碼表,但是一來,查找耗時間,第二呢,如果我們需要同時查找多個十六進制的對應的ascii碼值,總不能一個個查吧。
所以,我們可以自己寫一個簡單的代碼,實現多十六進制數與ascii的轉換。
1、十六進制轉換為ascii
def main():try: #為確保健壯性,需要對異常進行處理def hexToAscii(hN):n=map(lambda x:chr(int(x,16)),hN.split(' '))for i in n:print(i,end="") #對映射進行遍歷n = input('輸入十六進制數,以空格為分隔符:')hexToAscii(n)print()except: #不正常的輸入的情況下,會提示你重新輸入,并再次執行主函數print("請輸入正確的數!")main() main()lambda函數是匿名函數,可以對輸入的值進行處理
split()將輸入的字符串進行分割,以’ '為分隔符,將字符串分割為數組
map函數有兩個參數,可以對指定的序列做出映射,簡單來說,就是可以對序列進行處理,然后返回一個map對象
int(x,16)將十六進制數轉換為十進制數
chr()實現的功能就是將十進制數轉換為ascii碼
合起來就是map(lambda x:chr(int(x,16),hN.split(’ '))
例如,通過以下代碼,返回序列中每一個值與2的乘積
十六進制轉換為十進制
字符串分割
最后實現這樣的效果
2、ascii轉十六進制
def main():try:def AsciiToHex(string):s = map(lambda x:hex(ord(x)).strip('0x'),string)for t in s:print(t,end=" ")string = input('輸入字符串:')AsciiToHex(string)print()except:print("請輸入正確的數!")main() main()map()也可以對字符串做出映射
hex(ord(x))將ord(x)得到的int類型的十進制數轉換為十六進制
string.strip(‘0x’)對得到的字符串進行處理,去除’0x’
最后的效果:
3、批處理文件
@echo off chcp 65001 title ASCII碼轉換 color f2:menu echo ++++選項++++ echo 1 ascii to hex echo 2 hex to ascii echo 3 exit set /p number=輸入序號: if %number%==1 goto ascii_hex if %number%==2 goto hex_ascii if %number%==3 exit echo 請輸入序號:(1-3): pause goto menu:ascii_hex python asciiToHex.py pause goto :menu:hex_ascii python hexToAscii.py pause goto menu由于使用的是相對路徑,所以需要把它們放在同一個文件夾下,同時還要確保python可以在cmd里運行(配置python環境變量)。
最后的效果
總結
以上是生活随笔為你收集整理的Python 十六进制数与ascii码的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab图像输出表格_matlab
- 下一篇: python读取多个sheet文件_Py