python進制轉化函數,10進制字符串互轉,16進制字符串互轉


來了老弟,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的代碼程序,看一下就會啦。下次有空再補上,先去學習題目了 。  學到了學到了,媽媽也在不用擔心我總是百度在線字符進制轉換了。(- -好生硬)

 


免責聲明!

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



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