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二叉树遍历的实现方法
Nov 21 Python
Python中利用sqrt()方法进行平方根计算的教程
May 15 Python
Python实现高效求解素数代码实例
Jun 30 Python
django使用LDAP验证的方法示例
Dec 10 Python
Python基于百度云文字识别API
Dec 13 Python
详解Python requests 超时和重试的方法
Dec 18 Python
详解如何减少python内存的消耗
Aug 09 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
Nov 15 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
Opencv常见图像格式Data Type及代码实例
Nov 02 Python
如何创建一个Flask项目并进行简单配置
Nov 18 Python
浅析python实现动态规划背包问题
Dec 31 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+mysqli批量查询多张表数据的方法
2015/01/29 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
event.srcElement 用法笔记e.target
2009/12/18 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
利用Angularjs和bootstrap实现购物车功能
2016/08/31 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
AngularJs ng-change事件/指令的用法小结
2017/11/01 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
python遍历文件夹下所有excel文件
2018/01/03 Python
Python flask框架post接口调用示例
2019/07/03 Python
Python类及获取对象属性方法解析
2020/06/15 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
英格兰足协官方商店:England Store
2019/07/12 全球购物
中药专业大学生医药工作求职信
2013/10/25 职场文书
现金会计岗位职责
2013/12/05 职场文书
银行门卫岗位职责
2013/12/29 职场文书
六一儿童节活动总结
2014/08/27 职场文书
周年庆典答谢词
2015/01/20 职场文书
人事文员岗位职责
2015/02/04 职场文书
无罪辩护词范文
2015/05/21 职场文书
Vue router配置与使用分析讲解
2022/12/24 Vue.js