python的整數(shù)數(shù)字可以用二、八、十六不同進制表示,它們可以和十進制相互轉(zhuǎn)換。python的數(shù)字可以進行位操作。
1.1 python二八十六進制整數(shù)
python整數(shù)默認用十進制表示,也可以用二進制、八進制、十六進制表示整數(shù)。
python二進制(binary)整數(shù)以0b或0B開頭。
python八進制(Octal)整數(shù)以0o或0O開頭。
python十六進制(Hex)整數(shù)以0x或0X開頭。
1.1.1 不同進制內(nèi)置函數(shù)
python不同進制整數(shù)的內(nèi)置函數(shù)分為兩類。
一類將十進制整數(shù)轉(zhuǎn)換為不同進制。
一類將不同進制整數(shù)轉(zhuǎn)換為十進制。
序號 | 內(nèi)置函數(shù) | 描述 |
---|---|---|
1 | bin() | 將十進制整數(shù)轉(zhuǎn)為二進制 |
2 | oct() | 將十進制整數(shù)轉(zhuǎn)為八進制 |
3 | hex() | 將十進制整數(shù)轉(zhuǎn)為十六進制 |
4 | int(str,base) | 將不同進制整數(shù)字符串轉(zhuǎ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)十進制整數(shù)
python的eval()函數(shù)可以將字符串作為代碼執(zhí)行。速度慢,且存在安全問題。
可以通過eval()達到int()函數(shù)的效果,將不同進制整數(shù)字符串轉(zhuǎn)為十進制。
示例
>>> eval('95'),eval('0b1011111'),eval('0o137'),eval('0x5f')
(95, 95, 95, 95)
1.1.3 %和format()轉(zhuǎn)不同進制整數(shù)
python的字符串格式化表達式%和格式化方法format也可以將十進制整數(shù)轉(zhuǎ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ù)當做二進制進行位操作,比如左移、右移、或、與等。
python二進制位操作 | ||
---|---|---|
序號 | 位操作 | 描述 |
1 | x<>n | 右移n位,表示縮小2的n次方方倍 |
3 | x | n |
4 | x&n | 位與,全1位1,否則為0 |
注意 :相同整數(shù)進行與、或,結(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ā)布評論請先 登錄
十六進制和八進制轉(zhuǎn)換原理
LabVIEW中如何實現(xiàn)十六進制和ASCII之間的轉(zhuǎn)換
labview教程:十六進制和ASCII之間的相互轉(zhuǎn)換轉(zhuǎn)
十六進制編輯器
ASCII碼轉(zhuǎn)換成十六進制數(shù)
單字節(jié)BCD碼整數(shù)轉(zhuǎn)換成單字節(jié)十六進制整數(shù)
雙字節(jié)BCD碼整數(shù)轉(zhuǎn)換成雙字節(jié)十六進制整
單字節(jié)BCD碼小數(shù)轉(zhuǎn)換成單字節(jié)十六進制小數(shù)
雙字節(jié)十六進制整數(shù)轉(zhuǎn)換成雙字節(jié)BCD碼整數(shù)
單字節(jié)十六進制整數(shù)轉(zhuǎn)換成單字節(jié)BCD碼整數(shù)
二進制數(shù)與十六進制數(shù)的相互轉(zhuǎn)換

如何進行ASCII碼和十六進制數(shù)的轉(zhuǎn)換

UltraEdit十六進制編輯器

評論