Python3内置函数chr和ord实现进制转换


Posted in Python onJune 05, 2020

python的内置函数中,有一对函数:chr 和 ord,有着相反的功能。

1. chr(x):用一个数值作参数,返回一个对应的unicode字符,该参数的有效范围是从0到1114111(16进制时为0x10FFFF),参数可以是十进制,也可以是十六进制。

print(chr(105)) # ---> i
print(chr(0x9980)) # ---> 汉字:馀
print(chr(0x0030)) # ---> 0
print(chr(8364))  # ---> ?

print(chr(127137)) # ---> 扑克:A
print(chr(44032)) # ---> 韩语:가
print(chr(126976)) # --->麻将:东

Python3内置函数chr和ord实现进制转换

2. ord(x):chr(x)的反向函数,通过一个Unicode字符,返回其对应的数值。

print(ord('0')) # ---> 48(十进制):其十六进制为 0x0030
print(ord('i')) # ---> 105(十进制)

3. 其中,进制转换,主要有以下几种方式:

十六进制、二进制、八进制转十进制,注意:二进制表示中每一位只能是0或1表示,八进制中每一位只能在0-7之间,同理十六进制中的每一位在0-f之间,超出范围会报错。

print(int('10',2)) #二进制转十进制,int('20',2) 会报错
print(int('30',8)) #八进制转十进制,int('80',8) 会报错
print(int('f0',16)) #十六进制转十进制,int('g0',16) 会报错

# 下面的方式也可
print(int('0b10',2)) #二进制转十进制
print(int('0o30',8)) #八进制转十进制
print(int('0xf0',16)) #十六进制转十进制

十进制转二进制、八进制、十六进制,内置函数bin、oct、hex得到的进制前面会分别带有'0b','0o','0x'字符。

print(bin(15)) # 十进制转二进制
print(oct(15)) # 十进制转八进制
print(hex(482)) # 十进制转十六进制

或者

print(format(482,"x")) # 十进制转十六进制
print(format(15,"o")) # 十进制转八进制
print(format(15,"b")) # 十进制转二进制

4. format进制转换,b,o,d,x 分别表示 二进制、八进制、十进制、十六进制

十六进制转二进制、八进制、十进制

# format进制转换
print('{:b}'.format(0xef)) #十六进制转二进制:11101111
print('{:o}'.format(0xef)) #十六进制转八进制:357
print('{:d}'.format(0xef)) #十六进制转十进制:239

#格式化中加'#'表示加入标识
print('{:#b}'.format(0xef)) #十六进制转二进制:0b11101111,加标识 0b
print('{:#o}'.format(0xef)) #十六进制转八进制:0o357,加标识 0o
print('{:#d}'.format(0xef)) #十六进制转十进制:239,十进制不变

八进制、十进制转二进制

print('{:b}'.format(0o357)) #八进制转二进制:11101111
print('{:b}'.format(239)) #十进制转二进制:11101111
print('{:#b}'.format(0o357)) #八进制转二进制:0b11101111,加标识 0b
print('{:#b}'.format(239)) #十进制转二进制:0b11101111,加标识 0b

十进制、八进制、二进制转十六进制

#
print('{:x}'.format(239))  #十进制转十六进制:ef
print('{:x}'.format(0b11101111)) #二进制转十六进制:ef
print('{:x}'.format(0o357)) #八进制转十六进制:ef

#
print('{:#x}'.format(239))  #十进制转十六进制:0xef,加标识 0x
print('{:#x}'.format(0b11101111)) #二进制转十六进制:0xef,加标识 0x
print('{:#x}'.format(0o357)) #八进制转十六进制:0xef,加标识 0x

八进制以 '0o开头',二进制以 '0b' 开头,十六进制以 '0x' 开头。

注:

正好了解一下unicode字符集,Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等,是可以容纳世界上所有文字和符号的字符编码方案,比ASCII码能表示的范围大得多。

其中包括的种类可以自行搜索,每个种类在各自的区间范围内,有趣的字符很多,参考知乎大佬的操作,可以发现:

  • 象形文字
  • 楔形文字
  • 八卦
  • 太极图案
  • 易经64卦:范围是[0x4DC0, 0x4DFF],十进制是[19904, 19967],共64个
  • 扑克牌:范围是[0x1f0a0, 0x1f0df],十进制是[127136, 127199],共64个
  • 麻将:[126976, 127009]是34张正常牌,例如东南西北中发白、筒子等,接下来8张[127010, 127017]属于春、夏、秋、冬,梅、兰、竹、菊
  • 小图标
  • 汉字:常用汉字[19968, 40917],十六进制是[0x4E00, 0x9FD5];还有其他汉字在其他区域
  • 韩文:[44032, 55203]
  • 阿拉伯文、希腊文、日文、朝鲜文、泰文、缅甸文、蒙古文、藏文、拉丁文......
  • 盲文
  • 数学运算符:[0x2200-0x22FF]
  • 箭头
  • 货币
  • 标点等

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python错误处理详解
Sep 28 Python
python实现得到一个给定类的虚函数
Sep 28 Python
使用Python编写类UNIX系统的命令行工具的教程
Apr 15 Python
python 寻找优化使成本函数最小的最优解的方法
Dec 28 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 Python
python向图片里添加文字
Nov 26 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
Django高并发负载均衡实现原理详解
Apr 04 Python
浅析python 字典嵌套
Sep 29 Python
python tqdm用法及实例详解
Jun 16 Python
python实现会员管理系统
Mar 18 Python
Python 解决相对路径问题:"No such file or directory"
Jun 05 #Python
opencv之颜色过滤只留下图片中的红色区域操作
Jun 05 #Python
Python参数传递及收集机制原理解析
Jun 05 #Python
python如何进行矩阵运算
Jun 05 #Python
Opencv求取连通区域重心实例
Jun 04 #Python
Python中zip函数如何使用
Jun 04 #Python
Python中有几个关键字
Jun 04 #Python
You might like
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
PHP Global变量定义当前页面的全局变量实现探讨
2013/06/05 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
PHP之header函数详解
2021/03/02 PHP
JS获取计算机mac地址以及IP的实现方法
2014/01/08 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
js获取及判断键盘按键的方法
2015/12/01 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
python生成随机验证码(中文验证码)示例
2014/04/03 Python
python处理文本文件并生成指定格式的文件
2014/07/31 Python
Python书单 不将就
2017/07/11 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
Python命令行click参数用法解析
2019/12/19 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
深入浅析Python 函数注解与匿名函数
2020/02/24 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
python调用win32接口进行截图的示例
2020/11/11 Python
Python截图并保存的具体实例
2021/01/14 Python
Monnier Frères美国官网:法国知名奢侈品网站
2016/11/22 全球购物
节能减耗标语
2014/06/21 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
幸福终点站观后感
2015/06/04 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书