python的整數(shù)數(shù)字可以用二、八、十六不同進(jìn)制表示,它們可以和十進(jìn)制相互轉(zhuǎn)換。python的數(shù)字可以進(jìn)行位操作。
1.1 python二八十六進(jìn)制整數(shù)
python整數(shù)默認(rèn)用十進(jìn)制表示,也可以用二進(jìn)制、八進(jìn)制、十六進(jìn)制表示整數(shù)。
python二進(jìn)制(binary)整數(shù)以0b或0B開頭。
python八進(jìn)制(Octal)整數(shù)以0o或0O開頭。
python十六進(jìn)制(Hex)整數(shù)以0x或0X開頭。
1.1.1 不同進(jìn)制內(nèi)置函數(shù)
python不同進(jìn)制整數(shù)的內(nèi)置函數(shù)分為兩類。
一類將十進(jìn)制整數(shù)轉(zhuǎn)換為不同進(jìn)制。
一類將不同進(jìn)制整數(shù)轉(zhuǎn)換為十進(jìn)制。
序號(hào) | 內(nèi)置函數(shù) | 描述 |
---|---|---|
1 | bin() | 將十進(jìn)制整數(shù)轉(zhuǎn)為二進(jìn)制 |
2 | oct() | 將十進(jìn)制整數(shù)轉(zhuǎn)為八進(jìn)制 |
3 | hex() | 將十進(jìn)制整數(shù)轉(zhuǎn)為十六進(jìn)制 |
4 | int(str,base) | 將不同進(jìn)制整數(shù)字符串轉(zhuǎn)為十進(jìn)制 |
示例
>>> bin(95),oct(95),hex(95)
('0b1011111', '0o137', '0x5f')
>>> int('95'),int('0b1011111',2),int('0o137',8),int('0x5f',16)
(95, 95, 95, 95)
1.1.2 eval()轉(zhuǎn)十進(jìn)制整數(shù)
python的eval()函數(shù)可以將字符串作為代碼執(zhí)行。速度慢,且存在安全問題。
可以通過eval()達(dá)到int()函數(shù)的效果,將不同進(jìn)制整數(shù)字符串轉(zhuǎn)為十進(jìn)制。
示例
>>> eval('95'),eval('0b1011111'),eval('0o137'),eval('0x5f')
(95, 95, 95, 95)
1.1.3 %和format()轉(zhuǎn)不同進(jìn)制整數(shù)
python的字符串格式化表達(dá)式%和格式化方法format也可以將十進(jìn)制整數(shù)轉(zhuǎn)為不同進(jìn)制。
示例
>>> '%o,%x' % (95,95)
'137,5f'
>>> '{0:b},{1:o},{2:x}'.format(95,95,95)
'1011111,137,5f'
1.2 python數(shù)字位操作
python數(shù)字把整數(shù)當(dāng)做二進(jìn)制進(jìn)行位操作,比如左移、右移、或、與等。
python二進(jìn)制位操作 | ||
---|---|---|
序號(hào) | 位操作 | 描述 |
1 | x<>n | 右移n位,表示縮小2的n次方方倍 |
3 | x | n |
4 | x&n | 位與,全1位1,否則為0 |
注意 :相同整數(shù)進(jìn)行與、或,結(jié)果不變,為原值。
示例
>>> x = 2
>>> x << 3
16
>>> y = 16
>>> y >> 3
2
>>> x | 2
2
>>> x | 1
3
>>> x & 2
2
>>> x & 1
0
>>> x = 2
>>> bin(x)
'0b10'
>>> bin(x << 3)
'0b10000'
>>> int('0b10000',2)
16
>>> bin(x)
'0b10'
>>> bin(1)
'0b1'
>>> bin(x|1)
'0b11'
>>> int('0b11',2)
3
更多內(nèi)容參考python學(xué)習(xí)筆記或軟件測試開發(fā)目錄。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論