前語:如果您不通二進位制,八進位制,十六進製制,請移步:
你需要轉換或者輸出使用二進位制,八進位制或十六進製制表示的整數。
為了將整數轉換為二進位制、八進位制或十六進製制的文字串, 可以分別使用bin()
,oct()
或hex()
函式:
1 >>> x = 12342 >>>bin(x)3'
0b10011010010
'4 >>>oct(x)5'
0o2322
'6 >>>hex(x)7'
0x4d2
'8 >>>
另外,如果你不想輸出0b
,0o
或者0x
的字首的話,可以使用format()
函式。比如:
1 >>> format(x, 'b')2'10011010010
'3 >>> format(x, 'o'
)4'2322
'5 >>> format(x, 'x'
)6'4d2
'7 >>>
整數是有符號的,所以如果你在處理負數的話,輸出結果會包含乙個負號。比如:
1 >>> x = -12342 >>> format(x, 'b'
)3'-10011010010
'4 >>> format(x, 'x'
)5'-4d2
'6 >>>
如果你想產生乙個無符號值,你需要增加乙個指示最大位長度的值。比如為了顯示32位的值,可以像下面這樣寫:
1 >>> x = -12342 >>> format(2**32 + x, 'b'
)3'11111111111111111111101100101110
'4 >>> format(2**32 + x, 'x'
)5'fffffb2e
'6 >>>
為了以不同的進製轉換整數字串,簡單的使用帶有進製的int()
函式即可:
1 >>> int('4d2', 16)
2 1234
3 >>> int('
10011010010
', 2)
4 1234
5 >>>
大多數情況下處理二進位制、八進位制和十六進製制整數是很簡單的。 只要記住這些轉換屬於整數和其對應的文字表示之間的轉換即可。永遠只有一種整數型別。
最後,使用八進位制的程式設計師有一點需要注意下。 python指定八進位制數的語法跟其他語言稍有不同。比如,如果你像下面這樣指定八進位制,會出現語法錯誤:
1 >>> importos2 >>> os.chmod('
script.py
', 0755)
3 file "
", line 1
4 os.chmod('
script.py
', 0755)
5 ^
6syntaxerror: invalid token
7 >>>
需確保八進位制數的字首是0o
,就像下面這樣:
1 >>> os.chmod('script.py
', 0o755)
2 >>>
Python中數值和進製轉換
python數值和進製轉換 1.1 python中數值型別 int 整型 123 long 長整型 2147483648l float 浮點型 3.14 不同的數值型別會自動擴充 int數值大於或等於2 31次方,會自動轉換成long 表示方式是在數值後面加上l 如果int或long和float一起...
Python 進製轉換
python 進製轉換 1 oct hex bin 允許把 整數轉換為其他進製的字串 例子 oct 64 hex 64 bin 64 0100 0x40 0b1000000 oct函式會將十進位制數轉換為八進位制數,hex函式會將十進位制數轉換為十六進製制數,而 bin函式會將十進位制轉換為二進位制...
Python 進製轉換
python手擼實現十進位制轉16 8 2進製 class solution object def init self pass def convert self while true input num input 請輸入乙個整數 輸入q結束程式 if input num q return ten...