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 Trie树实现字典排序
Mar 28 Python
使用Python简单的实现树莓派的WEB控制
Feb 18 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
python 含子图的gif生成时内存溢出的方法
Jul 07 Python
python实现翻转棋游戏(othello)
Jul 29 Python
Django中reverse反转并且传递参数的方法
Aug 06 Python
django基础学习之send_mail功能
Aug 07 Python
Django ORM 常用字段与不常用字段汇总
Aug 09 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
Python Django中的STATIC_URL 设置和使用方式
Mar 27 Python
Python如何重新加载模块
Jul 29 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设计模式之数据对象映射模式
2016/03/03 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
2017/09/23 jQuery
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
Vue.js单向绑定和双向绑定实例分析
2018/08/14 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
python中os操作文件及文件路径实例汇总
2015/01/15 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
python logging模块的使用总结
2019/07/09 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
Python笔记之工厂模式
2019/11/20 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
css3中的calc函数浅析
2018/07/10 HTML / CSS
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
书法培训心得体会
2014/01/05 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
mysql事务隔离级别详情
2021/10/24 MySQL
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL
hive数据仓库新增字段方法
2022/06/25 数据库