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分割文件的常用方法
Nov 01 Python
mac系统安装Python3初体验
Jan 02 Python
python 日期排序的实例代码
Jul 11 Python
Python for循环与getitem的关系详解
Jan 02 Python
django实现模板中的字符串文字和自动转义
Mar 31 Python
Django日志及中间件模块应用案例
Sep 10 Python
Python爬虫开发与项目实战
Dec 16 Python
python实现视频压缩功能
Dec 18 Python
python实现PolynomialFeatures多项式的方法
Jan 06 Python
matplotlib事件处理基础(事件绑定、事件属性)
Feb 03 Python
单身狗福利?Python爬取某婚恋网征婚数据
Jun 03 Python
Python IO文件管理的具体使用
Mar 20 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函数eval()介绍和使用示例
2014/08/20 PHP
深入理解PHP内核(一)
2015/11/10 PHP
PHP curl模拟登录带验证码的网站
2015/11/30 PHP
完美的php分页类
2017/10/24 PHP
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
js鼠标左右键 键盘值小结
2010/06/11 Javascript
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
2011/10/12 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
基于Nodejs的Tcp封包和解包的理解
2018/09/19 NodeJs
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
python os.path模块常用方法实例详解
2018/09/16 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
python如何安装下载后的模块
2020/07/03 Python
Django静态文件加载失败解决方案
2020/08/26 Python
纬创Java面试题笔试题
2014/10/02 面试题
大学应届毕业生个人求职信
2013/09/23 职场文书
司机岗位职责
2013/11/15 职场文书
新护士岗前培训制度
2014/02/02 职场文书
党员自我对照检查材料
2014/08/19 职场文书
德育标兵事迹材料
2014/08/24 职场文书
民主生活会发言材料
2014/10/20 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
环境卫生整治简报
2015/07/20 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书