Python每日一練0019

問題

Python中如何將int在十進制和2、8、十六進制之間互相轉換python

解決方案

十進制向2、8、十六進制轉換微信

分別使用binocthexspa

>>> a = 123
>>> bin(a)
'0b1111011'
>>> oct(a)
'0o173'
>>> hex(a)
'0x7b'

這樣轉換會有一個前綴0b0o0x,若是不想要前綴只想要數值的話,能夠使用formatcode

>>> a = 123
>>> format(a, 'b')
'1111011'
>>> format(a, 'o')
'173'
>>> format(a, 'x')
'7b'

2、8、十六進制向十進制轉換orm

直接使用int()便可,由於int()的原型是int(x, base=10),因此咱們只須要指定base就好了rem

>>> a = '1111011'
>>> int(a, 2)
123
>>> a = '173'
>>> int(a, 8)
123
>>> a = '7b'
>>> int(a, 16)
123

討論

若是隻是須要在源碼中將2、8、十六進制轉十進制,實際上只須要寫上前綴就能夠了,不須要進行轉換,數值會自動轉換爲十進制,例如原型

>>> a = 0b1111011
>>> print(a)
123
>>> a = 0o173
>>> print(a)
123
>>> a = 0x7b
>>> print(a)
123

來源

Stack Overflow源碼

關注

歡迎關注個人微信公衆號:python每日一練it

相關文章
相關標籤/搜索