來了老弟,emmmmm,今天想到平時經常用到編碼轉化,把字符串轉化為16進制繞過等等的,今天想着用python寫個玩,查詢了一些資料,看了些bolg
上面的兩個函數是將二進制流轉化為16進制,data的每一個比特都被轉為對應十六進制的2位,因此返回結果是data長度的二倍。
下面的兩個函數意思是將十六進制串轉為二進制流,其中十六進制串長度必須是偶數,否則返回類型錯誤
直接上代碼,學到的皮毛寫了個16進制和字符的互轉,輸入時不需要帶16進制符號0x
這是py2 QAQ
#python2 import binascii inputt=input('如果16進制轉字符請選擇1,字符轉16進制請請選擇0 :') if(inputt==1): temp_one = raw_input('請輸入您需要轉化的16進制數:') temp1 = binascii.unhexlify(temp_one) print temp1 else: temp_two = raw_input('請輸入您需要轉化的字符串:') temp2 = binascii.hexlify(temp_two) print temp2

一開始寫的時候,以為是python3的input語法,返回的都是字符串。其實不然,在python2中,raw_input() 將所有輸入作為字符串看待,返回字符串類型. 而 input() 在對待純數字輸入時具有自己的特性,它返回所輸入的數字的類型( int, float )
在 Python3.x 中 raw_input() 和 input() 進行了整合,去除了 raw_input( ),僅保留了input( )函數,其接收任意任性輸入,將所有輸入默認為字符串處理,並返回字符串類型
>>來自菜鳥教程的說明
如果是10進制和字符串互轉的話,加個hex()函數就可以實現拉。可以參考BOLG:https://blog.csdn.net/qq_15727809/article/details/83513074 對了py2和py3的str類型也不同,博文中寫道了:Python2環境下,字符串默認存儲是二進制流,即str=bytes,因此可以這樣轉換。Python3二者有區分,因此需要將str轉為bytes 上面的文章中有py3的代碼程序,看一下就會啦。下次有空再補上,先去學習題目了 。 學到了學到了,媽媽也在不用擔心我總是百度在線字符進制轉換了。(- -好生硬)