使用python3.7作为测试环境,python2可能会有差异。
进制之间的转化
10进制比较特殊,如果需要十进制字符串可以在十进制数基础上外套一个str()函数。
输出\输入 | 2进制字符串(‘0b10’) | 8进制字符串(‘0o1’) | 10进制数 | 16进制字符串(‘0xaa’) |
---|---|---|---|---|
2进制字符串 | - | bin(int(n,8)) | bin(int(n,10)) | bin(int(n,16)) |
8进制字符串 | oct(int(n,2)) | - | oct(int(n,10)) | oct(int(n,16)) |
10进制数 | int(n,2) | int(n,8) | - | int(n,16) |
16进制字符串 | hex(int(n,2)) | hex(int(n,8)) | hex(int(n,10)) | - |
进制与字符转化
10进制数值和对应字符的转化
A = 40
chr(A)
>>> '('
B = '('
ord(B)
>>> 40
单字符转化成对应16进制字符串
A = '('
hex(ord(A))[2:]
>>> 28
B = 28
chr(int(str(B), 16))
>>> '('
如果需要返回bytes类型,可以将上述转化,或者直接使用binascii标准库。
A = b'28'
binascii.a2b_hex(A)
>>> b'('
B = b'('
binascii.b2a_hex(B)
>>> b'28'
这里binascii.a2b_hex()的输入除了bytes类型,也可以是str类型。但binascii.b2a_hex()不能使用str类型作为输入。
关于时间的转化的总结,可以参考另一篇文章。