Python3內(nèi)置函數(shù)chr和ord實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換
python的內(nèi)置函數(shù)中,有一對(duì)函數(shù):chr 和 ord,有著相反的功能。
1. chr(x):用一個(gè)數(shù)值作參數(shù),返回一個(gè)對(duì)應(yīng)的unicode字符,該參數(shù)的有效范圍是從0到1114111(16進(jìn)制時(shí)為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)) # ---> 韓語(yǔ):가 print(chr(126976)) # --->麻將:東
2. ord(x):chr(x)的反向函數(shù),通過(guò)一個(gè)Unicode字符,返回其對(duì)應(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之間,超出范圍會(huì)報(bào)錯(cuò)。
print(int('10',2)) #二進(jìn)制轉(zhuǎn)十進(jìn)制,int('20',2) 會(huì)報(bào)錯(cuò)
print(int('30',8)) #八進(jìn)制轉(zhuǎn)十進(jìn)制,int('80',8) 會(huì)報(bào)錯(cuò)
print(int('f0',16)) #十六進(jìn)制轉(zhuǎn)十進(jìn)制,int('g0',16) 會(huì)報(bào)錯(cuò)# 下面的方式也可
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)制前面會(huì)分別帶有'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)識(shí) print('{:#b}'.format(0xef)) #十六進(jìn)制轉(zhuǎn)二進(jìn)制:0b11101111,加標(biāo)識(shí) 0b print('{:#o}'.format(0xef)) #十六進(jìn)制轉(zhuǎn)八進(jìn)制:0o357,加標(biāo)識(shí) 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)識(shí) 0b
print('{:#b}'.format(239)) #十進(jìn)制轉(zhuǎn)二進(jìn)制:0b11101111,加標(biāo)識(shí) 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)識(shí) 0x print('{:#x}'.format(0b11101111)) #二進(jìn)制轉(zhuǎn)十六進(jìn)制:0xef,加標(biāo)識(shí) 0x print('{:#x}'.format(0o357)) #八進(jìn)制轉(zhuǎn)十六進(jìn)制:0xef,加標(biāo)識(shí) 0x
八進(jìn)制以 '0o開(kāi)頭',二進(jìn)制以 '0b' 開(kāi)頭,十六進(jìn)制以 '0x' 開(kāi)頭。
注:
正好了解一下unicode字符集,Unicode(統(tǒng)一碼、萬(wàn)國(guó)碼、單一碼)是計(jì)算機(jī)科學(xué)領(lǐng)域里的一項(xiàng)業(yè)界標(biāo)準(zhǔn),包括字符集、編碼方案等,是可以容納世界上所有文字和符號(hào)的字符編碼方案,比ASCII碼能表示的范圍大得多。
其中包括的種類(lèi)可以自行搜索,每個(gè)種類(lèi)在各自的區(qū)間范圍內(nèi),有趣的字符很多,參考知乎大佬的操作,可以發(fā)現(xiàn):
- 象形文字
- 楔形文字
- 八卦
- 太極圖案
- 易經(jīng)64卦:范圍是[0x4DC0, 0x4DFF],十進(jìn)制是[19904, 19967],共64個(gè)
- 撲克牌:范圍是[0x1f0a0, 0x1f0df],十進(jìn)制是[127136, 127199],共64個(gè)
- 麻將:[126976, 127009]是34張正常牌,例如東南西北中發(fā)白、筒子等,接下來(lái)8張[127010, 127017]屬于春、夏、秋、冬,梅、蘭、竹、菊
- 小圖標(biāo)
- 漢字:常用漢字[19968, 40917],十六進(jìn)制是[0x4E00, 0x9FD5];還有其他漢字在其他區(qū)域
- 韓文:[44032, 55203]
- 阿拉伯文、希臘文、日文、朝鮮文、泰文、緬甸文、蒙古文、藏文、拉丁文......
- 盲文
- 數(shù)學(xué)運(yùn)算符:[0x2200-0x22FF]
- 箭頭
- 貨幣
- 標(biāo)點(diǎn)等
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python將json文件寫(xiě)入ES數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了Python將json文件寫(xiě)入ES數(shù)據(jù)庫(kù)的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-04-04Python實(shí)現(xiàn)的字典排序操作示例【按鍵名key與鍵值value排序】
這篇文章主要介紹了Python實(shí)現(xiàn)的字典排序操作,結(jié)合實(shí)例形式分析了Python針對(duì)字典分別按照鍵名key與鍵值value進(jìn)行排序的相關(guān)操作技巧,需要的朋友可以參考下2018-12-12Python?pandas中read_csv參數(shù)示例詳解
使用pandas做數(shù)據(jù)處理的第一步就是讀取數(shù)據(jù),數(shù)據(jù)源可以來(lái)自于各種地方,csv文件便是其中之一,下面這篇文章主要給大家介紹了關(guān)于Python?pandas中read_csv參數(shù)詳解的相關(guān)資料,需要的朋友可以參考下2023-01-01Pytorch 的損失函數(shù)Loss function使用詳解
今天小編就為大家分享一篇Pytorch 的損失函數(shù)Loss function使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01python通過(guò)設(shè)置WordCloud參數(shù)實(shí)現(xiàn)定制詞云
這篇文章主要為大家詳細(xì)介紹了python如何通過(guò)設(shè)置WordCloud參數(shù)實(shí)現(xiàn)定制詞云,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11Python 靜態(tài)導(dǎo)入與動(dòng)態(tài)導(dǎo)入的實(shí)現(xiàn)示例
Python靜態(tài)導(dǎo)入和動(dòng)態(tài)導(dǎo)入是指導(dǎo)入模塊或模塊內(nèi)部函數(shù)的兩種方式,本文主要介紹了Python 靜態(tài)導(dǎo)入與動(dòng)態(tài)導(dǎo)入的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05pandas 對(duì)每一列數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化的方法
今天小編就為大家分享一篇pandas 對(duì)每一列數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06