使用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類型作爲輸入。
關於時間的轉化的總結,可以參考另一篇文章。