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的代码程序,看一下就会啦。下次有空再补上,先去学习题目了 。  学到了学到了,妈妈也在不用担心我总是百度在线字符进制转换了。(- -好生硬)

猜你喜欢

转载自www.cnblogs.com/BOHB-yunying/p/10567472.html