python中string和十六进制、十进制、二进制互转

Python int与string之间的转化

string-->int

1、10进制string转化为int

  int('12')

2、16进制string转化为int

  int('12', 16)


int-->string

1、int转化为10进制string

  str(18)

2、int转化为16进制string

  hex(18)


考虑,为什么没有16进制int转化为string,可以这么认为不管什么进制,python在内部表示都是10进制,先转化为10进制在进行。如16进制int转化为string,str(0x12),首先变为str(18),再到'18'。那么我想结果为'12',怎么办?这其实就是10进制int转化为string,即hex(0x12)。

python中string和十六进制、二进制互转

1 def str_to_hex(s):
2     return ' '.join([hex(ord(c)).replace('0x', '') for c in s])
3
4 def hex_to_str(s):
5     return ''.join([chr(i) for i in [int(b, 16) for b in s.split(' ')]])
6    
7 def str_to_bin(s):
8     return ' '.join([bin(ord(c)).replace('0b', '') for c in s])
9    
10 def bin_to_str(s):
11     return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]])

 

发布了4 篇原创文章 · 获赞 4 · 访问量 2281

猜你喜欢

转载自blog.csdn.net/bluewhu/article/details/101851293