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 01 Python
Python函数中的函数(闭包)用法实例
Mar 15 Python
python正则分析nginx的访问日志
Jan 17 Python
Python编程之gui程序实现简单文件浏览器代码
Dec 08 Python
Tensorflow中的placeholder和feed_dict的使用
Jul 09 Python
用python标准库difflib比较两份文件的异同详解
Nov 16 Python
python scatter散点图用循环分类法加图例
Mar 19 Python
python使用wxpy实现微信消息防撤回脚本
Apr 29 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
python的sys.path模块路径添加方式
Mar 09 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 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
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
PHP中使用break跳出多重循环代码实例
2015/01/21 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
PHP MVC框架中类的自动加载机制实例分析
2019/09/18 PHP
javascript Window及document对象详细整理
2011/01/12 Javascript
编写自己的jQuery插件简单实现代码
2011/04/19 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
Python素数检测的方法
2015/05/11 Python
详解Python中如何写控制台进度条的整理
2018/03/07 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
python文件写入write()的操作
2019/05/14 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
关于python中导入文件到list的问题
2020/10/31 Python
英国电器零售商:PRC Direct
2018/06/21 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
小学教师节活动总结
2015/03/20 职场文书
优秀大学生自荐信
2015/03/26 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
总经理致辞
2015/07/29 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL
mysql left join快速转inner join的过程
2021/06/30 MySQL
Echarts如何重新渲染实例详解
2022/05/30 Javascript