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中使用成员运算符的示例
May 13 Python
Python的Django框架中的URL配置与松耦合
Jul 15 Python
python实现给数组按片赋值的方法
Jul 28 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
python中从str中提取元素到list以及将list转换为str的方法
Jun 26 Python
分享Python切分字符串的一个不错方法
Dec 14 Python
利用pandas合并多个excel的方法示例
Oct 10 Python
python实现大战外星人小游戏实例代码
Dec 26 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
Jun 06 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
Jan 12 Python
python如何正确使用yield
May 21 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
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
php 生成饼图 三维饼图
2009/09/28 PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
2019/03/06 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
python记录程序运行时间的三种方法
2017/07/14 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
行政经理的岗位职责
2013/11/23 职场文书
材料会计岗位职责
2014/03/06 职场文书
国贸专业求职信
2014/06/28 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
党的群众路线教育实践活动方案
2014/10/31 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
工作年限证明模板
2015/06/15 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书