Python3內(nèi)置函數(shù)chr和ord實現(xiàn)進制轉(zhuǎn)換
python的內(nèi)置函數(shù)中,有一對函數(shù):chr 和 ord,有著相反的功能。
1. chr(x):用一個數(shù)值作參數(shù),返回一個對應(yīng)的unicode字符,該參數(shù)的有效范圍是從0到1114111(16進制時為0x10FFFF),參數(shù)可以是十進制,也可以是十六進制。
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(十進制):其十六進制為 0x0030
print(ord('i')) # ---> 105(十進制)
3. 其中,進制轉(zhuǎn)換,主要有以下幾種方式:
十六進制、二進制、八進制轉(zhuǎn)十進制,注意:二進制表示中每一位只能是0或1表示,八進制中每一位只能在0-7之間,同理十六進制中的每一位在0-f之間,超出范圍會報錯。
print(int('10',2)) #二進制轉(zhuǎn)十進制,int('20',2) 會報錯
print(int('30',8)) #八進制轉(zhuǎn)十進制,int('80',8) 會報錯
print(int('f0',16)) #十六進制轉(zhuǎn)十進制,int('g0',16) 會報錯# 下面的方式也可
print(int('0b10',2)) #二進制轉(zhuǎn)十進制
print(int('0o30',8)) #八進制轉(zhuǎn)十進制
print(int('0xf0',16)) #十六進制轉(zhuǎn)十進制
十進制轉(zhuǎn)二進制、八進制、十六進制,內(nèi)置函數(shù)bin、oct、hex得到的進制前面會分別帶有'0b','0o','0x'字符。
print(bin(15)) # 十進制轉(zhuǎn)二進制
print(oct(15)) # 十進制轉(zhuǎn)八進制
print(hex(482)) # 十進制轉(zhuǎn)十六進制
或者
print(format(482,"x")) # 十進制轉(zhuǎn)十六進制
print(format(15,"o")) # 十進制轉(zhuǎn)八進制
print(format(15,"b")) # 十進制轉(zhuǎn)二進制
4. format進制轉(zhuǎn)換,b,o,d,x 分別表示 二進制、八進制、十進制、十六進制
十六進制轉(zhuǎn)二進制、八進制、十進制
# format進制轉(zhuǎn)換
print('{:b}'.format(0xef)) #十六進制轉(zhuǎn)二進制:11101111
print('{:o}'.format(0xef)) #十六進制轉(zhuǎn)八進制:357
print('{:d}'.format(0xef)) #十六進制轉(zhuǎn)十進制:239
#格式化中加'#'表示加入標識
print('{:#b}'.format(0xef)) #十六進制轉(zhuǎn)二進制:0b11101111,加標識 0b
print('{:#o}'.format(0xef)) #十六進制轉(zhuǎn)八進制:0o357,加標識 0o
print('{:#d}'.format(0xef)) #十六進制轉(zhuǎn)十進制:239,十進制不變
八進制、十進制轉(zhuǎn)二進制
print('{:b}'.format(0o357)) #八進制轉(zhuǎn)二進制:11101111
print('{:b}'.format(239)) #十進制轉(zhuǎn)二進制:11101111
print('{:#b}'.format(0o357)) #八進制轉(zhuǎn)二進制:0b11101111,加標識 0b
print('{:#b}'.format(239)) #十進制轉(zhuǎn)二進制:0b11101111,加標識 0b
十進制、八進制、二進制轉(zhuǎn)十六進制
#
print('{:x}'.format(239)) #十進制轉(zhuǎn)十六進制:ef
print('{:x}'.format(0b11101111)) #二進制轉(zhuǎn)十六進制:ef
print('{:x}'.format(0o357)) #八進制轉(zhuǎn)十六進制:ef
#
print('{:#x}'.format(239)) #十進制轉(zhuǎn)十六進制:0xef,加標識 0x
print('{:#x}'.format(0b11101111)) #二進制轉(zhuǎn)十六進制:0xef,加標識 0x
print('{:#x}'.format(0o357)) #八進制轉(zhuǎn)十六進制:0xef,加標識 0x
八進制以 '0o開頭',二進制以 '0b' 開頭,十六進制以 '0x' 開頭。
注:
正好了解一下unicode字符集,Unicode(統(tǒng)一碼、萬國碼、單一碼)是計算機科學(xué)領(lǐng)域里的一項業(yè)界標準,包括字符集、編碼方案等,是可以容納世界上所有文字和符號的字符編碼方案,比ASCII碼能表示的范圍大得多。
其中包括的種類可以自行搜索,每個種類在各自的區(qū)間范圍內(nèi),有趣的字符很多,參考知乎大佬的操作,可以發(fā)現(xiàn):
- 象形文字
- 楔形文字
- 八卦
- 太極圖案
- 易經(jīng)64卦:范圍是[0x4DC0, 0x4DFF],十進制是[19904, 19967],共64個
- 撲克牌:范圍是[0x1f0a0, 0x1f0df],十進制是[127136, 127199],共64個
- 麻將:[126976, 127009]是34張正常牌,例如東南西北中發(fā)白、筒子等,接下來8張[127010, 127017]屬于春、夏、秋、冬,梅、蘭、竹、菊
- 小圖標
- 漢字:常用漢字[19968, 40917],十六進制是[0x4E00, 0x9FD5];還有其他漢字在其他區(qū)域
- 韓文:[44032, 55203]
- 阿拉伯文、希臘文、日文、朝鮮文、泰文、緬甸文、蒙古文、藏文、拉丁文......
- 盲文
- 數(shù)學(xué)運算符:[0x2200-0x22FF]
- 箭頭
- 貨幣
- 標點等
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
一個簡單的python爬蟲程序 爬取豆瓣熱度Top100以內(nèi)的電影信息
這篇文章主要為大家詳細介紹了一個簡單的python爬蟲程序,爬取豆瓣熱度Top100以內(nèi)的電影信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04
Python OpenCV高斯金字塔與拉普拉斯金字塔的實現(xiàn)
這篇文章主要介紹了Python OpenCV高斯金字塔與拉普拉斯金字塔的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2021-03-03
python人工智能tensorflow優(yōu)化器Optimizer算法匯總
這篇文章主要為大家介紹了python人工智能tensorflowtf優(yōu)化器Optimizer算法匯總,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
詳解Python如何使用Self類型實現(xiàn)返回類的實例對象
在 Python 中,類方法通常會返回類的實例對象,本文將詳細介紹如何在 Python 中使用 Self 類型來返回類的實例對象,并提供豐富的示例代碼幫助更好地理解,快跟隨小編一起學(xué)習起來吧2024-02-02
Python數(shù)據(jù)分析之?Pandas?Dataframe應(yīng)用自定義
這篇文章主要介紹了Python數(shù)據(jù)分析之?Pandas?Dataframe應(yīng)用自定義,文章基于python的相關(guān)資料展開?Pandas?Dataframe應(yīng)用自定義的詳細內(nèi)容,需要的小伙伴可以參考一下2022-05-05
PyTorch?使用torchvision進行圖片數(shù)據(jù)增廣
本文主要介紹了PyTorch?使用torchvision進行圖片數(shù)據(jù)增廣,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2022-05-05

