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 Socket编程详细介绍
Mar 23 Python
Python简单生成随机数的方法示例
Mar 31 Python
numpy添加新的维度:newaxis的方法
Aug 02 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
Jan 29 Python
Python使用selenium + headless chrome获取网页内容的方法示例
Oct 16 Python
pytorch 批次遍历数据集打印数据的例子
Dec 30 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
PyQt5中向单元格添加控件的方法示例
Mar 24 Python
如何在python中执行另一个py文件
Apr 30 Python
pycharm 对代码做静态检查操作
Jun 09 Python
python对execl 处理操作代码
Jun 22 Python
如何用Python和JS实现的Web SSH工具
Feb 23 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
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
人大复印资料处理程序_查询篇
2006/10/09 PHP
php流量统计功能的实现代码
2012/09/29 PHP
php删除数组元素示例分享
2014/02/17 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
BOM系列第二篇之定时器requestAnimationFrame
2016/08/17 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
一篇超完整的Vue新手入门指导教程
2020/11/18 Vue.js
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
详解Python中的strftime()方法的使用
2015/05/22 Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
Python接口开发实现步骤详解
2020/04/26 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
初一英语教学反思
2014/01/11 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
Python中npy和mat文件的保存与读取
2022/04/24 Python
pt-archiver 主键自增
2022/04/26 MySQL