1. 程式人生 > >Python: 二進位制、八進位制、十六進位制轉換或者輸出

Python: 二進位制、八進位制、十六進位制轉換或者輸出

為了將整數轉換為二進位制、八進位制或十六進位制的文字串,可以分別使用bin() ,oct() 或hex() 函式:

>>> x = 1234
>>> bin(x)
'0b10011010010'
>>> oct(x)
'0o2322'
>>> hex(x)
'0x4d2'

 

 如果你不想輸出0b , 0o 或者0x 的字首的話,可以使用format() 函式

>>> format(x, 'b')
'10011010010'
>>> format(x, 'o')
'2322'
>>> format(x, 'x')
'4d2'

 

整數是有符號的,所以如果你在處理負數的話,輸出結果會包含一個負號

>>> x = -1234
>>> format(x, 'b')
'-10011010010'
>>> format(x, 'x')
'-4d2'

 

如果你想產生一個無符號值,你需要增加一個指示最大位長度的值。比如為了顯示32 位的值,可以像下面這樣寫:

>>> x = -1234
>>> format(2**32 + x, 'b')
'11111111111111111111101100101110'
>>> format(2**32 + x, 'x')
'fffffb2e'

 

為了以不同的進位制轉換整數字符串,簡單的使用帶有進位制的int() 函式即可

>>> int('4d2', 16)
1234
>>> int('10011010010', 2)
1234