W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
你需要轉(zhuǎn)換或者輸出使用二進(jìn)制,八進(jìn)制或十六進(jìn)制表示的整數(shù)。
為了將整數(shù)轉(zhuǎn)換為二進(jìn)制、八進(jìn)制或十六進(jìn)制的文本串,可以分別使用 bin()
、oct()
或 hex()
函數(shù):
>>> x = 1234
>>> bin(x)
'0b10011010010'
>>> oct(x)
'0o2322'
>>> hex(x)
'0x4d2'
>>>
另外,如果你不想輸出 0b
, 0o
或者 0x
的前綴的話,可以使用 format()
函數(shù)。比如:
>>> format(x, 'b')
'10011010010'
>>> format(x, 'o')
'2322'
>>> format(x, 'x')
'4d2'
>>>
整數(shù)是有符號(hào)的,所以如果你在處理負(fù)數(shù)的話,輸出結(jié)果會(huì)包含一個(gè)負(fù)號(hào)。比如:
>>> x = -1234
>>> format(x, 'b')
'-10011010010'
>>> format(x, 'x')
'-4d2'
>>>
如果你想產(chǎn)生一個(gè)無(wú)符號(hào)值,你需要增加一個(gè)指示最大位長(zhǎng)度的值。比如為了顯示32位的值,可以像下面這樣寫:
>>> x = -1234
>>> format(2**32 + x, 'b')
'11111111111111111111101100101110'
>>> format(2**32 + x, 'x')
'fffffb2e'
>>>
為了以不同的進(jìn)制轉(zhuǎn)換整數(shù)字符串,簡(jiǎn)單的使用帶有進(jìn)制的int()函數(shù)即可:
>>> int('4d2', 16)
1234
>>> int('10011010010', 2)
1234
>>>
大多數(shù)情況下處理二進(jìn)制、八進(jìn)制和十六進(jìn)制整數(shù)是很簡(jiǎn)單的。只要記住這些轉(zhuǎn)換屬于整數(shù)和其對(duì)應(yīng)的文本表示之間的轉(zhuǎn)換即可。永遠(yuǎn)只有一種整數(shù)類型。
最后,使用八進(jìn)制的程序員有一點(diǎn)需要注意下。Python指定八進(jìn)制數(shù)的語(yǔ)法跟其他語(yǔ)言稍有不同。比如,如果你像下面這樣指定八進(jìn)制,會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤:
>>> import os
>>> os.chmod('script.py', 0755)
File "<stdin>", line 1
os.chmod('script.py', 0755)
^
SyntaxError: invalid token
>>>
需確保八進(jìn)制數(shù)的前綴是 0o
,就像下面這樣:
>>> os.chmod('script.py', 0o755)
>>>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: