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正则表达式介绍
Aug 06 Python
python del()函数用法
Mar 24 Python
在python中利用最小二乘拟合二次抛物线函数的方法
Dec 29 Python
python保留小数位的三种实现方法
Jan 07 Python
Python进程间通信multiprocess代码实例
Mar 18 Python
python实现俄罗斯方块小游戏
Apr 24 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 Python
解决echarts中饼图标签重叠的问题
May 16 Python
python递归函数用法详解
Oct 26 Python
详解pandas apply 并行处理的几种方法
Feb 24 Python
Python中else的三种使用场景
Jun 16 Python
如何利用Python实现n*n螺旋矩阵
Jan 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中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
JS实现深度优先搜索求解两点间最短路径
2019/01/17 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
详解JS实现系统登录页的登录和验证
2019/04/29 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
基于Vue CSR的微前端实现方案实践
2020/05/27 Javascript
python线程池的实现实例
2013/11/18 Python
Python学习笔记之os模块使用总结
2014/11/03 Python
python实现ipsec开权限实例
2014/11/11 Python
Python中os.path用法分析
2015/01/15 Python
在Python中操作文件之truncate()方法的使用教程
2015/05/25 Python
python操作字典类型的常用方法(推荐)
2016/05/16 Python
python操作 hbase 数据的方法
2016/12/18 Python
关于Django外键赋值问题详解
2017/08/13 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
css3进行截取替代js的substring
2013/09/02 HTML / CSS
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
.net C#面试题
2012/08/28 面试题
经管应届生求职信
2013/11/17 职场文书
幼儿教师研修感言
2014/02/12 职场文书
参观接待方案
2014/03/17 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
应届大专生自荐书
2014/06/16 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
2016年国陪研修感言
2015/11/18 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python