Python 字符串与十进制的转换 |
您所在的位置:网站首页 › python二进制转成十进制 › Python 字符串与十进制的转换 |
写在前面 我真是要气死了!每次都记不住python字符串和十进制之间的转换!每次用到还要各种查资料问别人,结果都要花好久的时间……这种情况不下3次!!这次一定要记下来! python2.7 字符串转为十进制:首先要将字符串转为16进制,再转为十进制 十进制转为字符串:首先要将十进制转为16进制,再转为字符串 import binascii string = 'You are the best! Fighting!!!' string_int1 = int(binascii.hexlify(string),16) string_int2 = int(binascii.b2a_hex(string),16) string_int3 = int(string.encode('hex'),16) print string_int1 print string_int2 print string_int3 int_string1 = binascii.unhexlify(hex(string_int1)[2:-1]) int_string2 = binascii.a2b_hex(hex(string_int1)[2:-1]) int_string3 = hex(string_int1)[2:-1].decode('hex') print int_string1 print int_string2 print int_string3结果: 官方解释: 备注:Python2环境下,字符串默认存储是二进制流,即str=bytes,因此可以这样转换。Python3二者有区分,因此需要将str转为bytes Python3.6 # -*-coding:utf-8-*- import binascii string = 'You are the best! Fighting!!!' # 先将str转为bytes,3种方法 string1= b'You are the best! Fighting!!!' string2 = bytes(string,encoding='utf-8') string3 = string.encode('utf-8') string_int1 = int(binascii.hexlify(string1),16) string_int2 = int(binascii.b2a_hex(string2),16) print (string_int1) print (string_int2) # LookupError: 'hex' is not a text encoding; use codecs.encode() to handle arbitrary codecs # 意思是字符串的没有'hex'编码形式,因此错误 #print (string.encode('hex')) #string_int3 = int(string.encode('hex'),16) int_string1 = binascii.unhexlify(hex(string_int1)[2:]) int_string2 = binascii.a2b_hex(hex(string_int1)[2:]) print (int_string1) print (int_string2) a = hex(string_int1) print (type(a)) # 由于str没有decode属性,因此下面这个方法不能用 #int_string3 = hex(string_int1)[2:-1].decode('hex')结果: 参考:Python3环境下 str与bytes详解 https://blog.csdn.net/lyb3b3b/article/details/74993327 第一种方法: 使用str.encode()和bytes.decode() (1)str转为bytes: (2)bytes转为str: 第二种方法: 使用内置函数bytes()和str() (1)str转为bytes (2)bytes转为str |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |