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选课系统开发程序
Sep 02 Python
python 获取网页编码方式实现代码
Mar 11 Python
python爬虫实战之爬取京东商城实例教程
Apr 24 Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 Python
Python元组及文件核心对象类型详解
Feb 11 Python
Python爬虫实战:分析《战狼2》豆瓣影评
Mar 26 Python
python print输出延时,让其立刻输出的方法
Jan 07 Python
Python Django 实现简单注册功能过程详解
Jul 29 Python
初次部署django+gunicorn+nginx的方法步骤
Sep 11 Python
Python 静态方法和类方法实例分析
Nov 21 Python
Python 寻找局部最高点的实现
Dec 05 Python
python 等差数列末项计算方式
May 03 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中::、->、self、$this几种操作符的区别介绍
2013/04/24 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
js数组与字符串的相互转换方法
2014/07/09 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
python 中的int()函数怎么用
2017/10/17 Python
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
delegate与普通函数的区别
2014/01/22 面试题
教育孩子心得体会
2014/01/01 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
销售团队口号大全
2014/06/06 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
董事长秘书岗位职责
2015/02/13 职场文书