您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了Python3如何實現(xiàn)內(nèi)置函數(shù)chr和ord進(jìn)制轉(zhuǎn)換,內(nèi)容簡而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。
python的內(nèi)置函數(shù)中,有一對函數(shù):chr 和 ord,有著相反的功能。
1. chr(x):用一個數(shù)值作參數(shù),返回一個對應(yīng)的unicode字符,該參數(shù)的有效范圍是從0到1114111(16進(jìn)制時為0x10FFFF),參數(shù)可以是十進(jìn)制,也可以是十六進(jìn)制。
print(chr(105)) # ---> i print(chr(0x9980)) # ---> 漢字:馀 print(chr(0x0030)) # ---> 0 print(chr(8364)) # ---> ? print(chr(127137)) # ---> 撲克:A print(chr(44032)) # ---> 韓語:가 print(chr(126976)) # --->麻將:東
2. ord(x):chr(x)的反向函數(shù),通過一個Unicode字符,返回其對應(yīng)的數(shù)值。
print(ord('0')) # ---> 48(十進(jìn)制):其十六進(jìn)制為 0x0030 print(ord('i')) # ---> 105(十進(jìn)制)
3. 其中,進(jìn)制轉(zhuǎn)換,主要有以下幾種方式:
十六進(jìn)制、二進(jìn)制、八進(jìn)制轉(zhuǎn)十進(jìn)制,注意:二進(jìn)制表示中每一位只能是0或1表示,八進(jìn)制中每一位只能在0-7之間,同理十六進(jìn)制中的每一位在0-f之間,超出范圍會報錯。
print(int('10',2)) #二進(jìn)制轉(zhuǎn)十進(jìn)制,int('20',2) 會報錯
print(int('30',8)) #八進(jìn)制轉(zhuǎn)十進(jìn)制,int('80',8) 會報錯
print(int('f0',16)) #十六進(jìn)制轉(zhuǎn)十進(jìn)制,int('g0',16) 會報錯# 下面的方式也可
print(int('0b10',2)) #二進(jìn)制轉(zhuǎn)十進(jìn)制
print(int('0o30',8)) #八進(jìn)制轉(zhuǎn)十進(jìn)制
print(int('0xf0',16)) #十六進(jìn)制轉(zhuǎn)十進(jìn)制
十進(jìn)制轉(zhuǎn)二進(jìn)制、八進(jìn)制、十六進(jìn)制,內(nèi)置函數(shù)bin、oct、hex得到的進(jìn)制前面會分別帶有'0b','0o','0x'字符。
print(bin(15)) # 十進(jìn)制轉(zhuǎn)二進(jìn)制
print(oct(15)) # 十進(jìn)制轉(zhuǎn)八進(jìn)制
print(hex(482)) # 十進(jìn)制轉(zhuǎn)十六進(jìn)制
或者
print(format(482,"x")) # 十進(jìn)制轉(zhuǎn)十六進(jìn)制
print(format(15,"o")) # 十進(jìn)制轉(zhuǎn)八進(jìn)制
print(format(15,"b")) # 十進(jìn)制轉(zhuǎn)二進(jìn)制
4. format進(jìn)制轉(zhuǎn)換,b,o,d,x 分別表示 二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制
十六進(jìn)制轉(zhuǎn)二進(jìn)制、八進(jìn)制、十進(jìn)制
# format進(jìn)制轉(zhuǎn)換 print('{:b}'.format(0xef)) #十六進(jìn)制轉(zhuǎn)二進(jìn)制:11101111 print('{:o}'.format(0xef)) #十六進(jìn)制轉(zhuǎn)八進(jìn)制:357 print('{:d}'.format(0xef)) #十六進(jìn)制轉(zhuǎn)十進(jìn)制:239 #格式化中加'#'表示加入標(biāo)識 print('{:#b}'.format(0xef)) #十六進(jìn)制轉(zhuǎn)二進(jìn)制:0b11101111,加標(biāo)識 0b print('{:#o}'.format(0xef)) #十六進(jìn)制轉(zhuǎn)八進(jìn)制:0o357,加標(biāo)識 0o print('{:#d}'.format(0xef)) #十六進(jìn)制轉(zhuǎn)十進(jìn)制:239,十進(jìn)制不變
八進(jìn)制、十進(jìn)制轉(zhuǎn)二進(jìn)制
print('{:b}'.format(0o357)) #八進(jìn)制轉(zhuǎn)二進(jìn)制:11101111
print('{:b}'.format(239)) #十進(jìn)制轉(zhuǎn)二進(jìn)制:11101111
print('{:#b}'.format(0o357)) #八進(jìn)制轉(zhuǎn)二進(jìn)制:0b11101111,加標(biāo)識 0b
print('{:#b}'.format(239)) #十進(jìn)制轉(zhuǎn)二進(jìn)制:0b11101111,加標(biāo)識 0b
十進(jìn)制、八進(jìn)制、二進(jìn)制轉(zhuǎn)十六進(jìn)制
# print('{:x}'.format(239)) #十進(jìn)制轉(zhuǎn)十六進(jìn)制:ef print('{:x}'.format(0b11101111)) #二進(jìn)制轉(zhuǎn)十六進(jìn)制:ef print('{:x}'.format(0o357)) #八進(jìn)制轉(zhuǎn)十六進(jìn)制:ef # print('{:#x}'.format(239)) #十進(jìn)制轉(zhuǎn)十六進(jìn)制:0xef,加標(biāo)識 0x print('{:#x}'.format(0b11101111)) #二進(jìn)制轉(zhuǎn)十六進(jìn)制:0xef,加標(biāo)識 0x print('{:#x}'.format(0o357)) #八進(jìn)制轉(zhuǎn)十六進(jìn)制:0xef,加標(biāo)識 0x
八進(jìn)制以 '0o開頭',二進(jìn)制以 '0b' 開頭,十六進(jìn)制以 '0x' 開頭。
注:
正好了解一下unicode字符集,Unicode(統(tǒng)一碼、萬國碼、單一碼)是計算機(jī)科學(xué)領(lǐng)域里的一項業(yè)界標(biāo)準(zhǔn),包括字符集、編碼方案等,是可以容納世界上所有文字和符號的字符編碼方案,比ASCII碼能表示的范圍大得多。
其中包括的種類可以自行搜索,每個種類在各自的區(qū)間范圍內(nèi),有趣的字符很多,參考知乎大佬的操作,可以發(fā)現(xiàn):
以上就是關(guān)于Python3如何實現(xiàn)內(nèi)置函數(shù)chr和ord進(jìn)制轉(zhuǎn)換的內(nèi)容,如果你們有學(xué)習(xí)到知識或者技能,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。