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之有容乃大的list(3)
Sep 15 Python
Python中字典创建、遍历、添加等实用操作技巧合集
Jun 02 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
Jan 20 Python
详解python中requirements.txt的一切
Mar 03 Python
django 常用orm操作详解
Sep 13 Python
使用Python+wxpy 找出微信里把你删除的好友实例
Feb 21 Python
解决Atom安装Hydrogen无法运行python3的问题
Aug 28 Python
Python对接 xray 和微信实现自动告警
Sep 17 Python
python如何获取apk的packagename和activity
Jan 10 Python
PyCharm永久激活方式(推荐)
Sep 22 Python
python pymysql链接数据库查询结果转为Dataframe实例
Jun 05 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 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反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
PHP中的Trait 特性及作用
2016/04/03 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
2017/10/08 Javascript
JS异步函数队列功能实例分析
2017/11/28 Javascript
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
2019/09/05 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
Python中的赋值、浅拷贝、深拷贝介绍
2015/03/09 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
2016/04/24 Python
Django入门使用示例
2017/12/12 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
PyQt5实现画布小程序
2020/05/30 Python
Python configparser模块封装及构造配置文件
2020/08/07 Python
python3判断IP地址的方法
2021/03/04 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
奥巴马获胜演讲稿
2014/05/15 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL
解决python存数据库速度太慢的问题
2021/04/23 Python
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js