python 进制转换 int、bin、oct、hex的原理


Posted in Python onJanuary 13, 2021

原理

十进制转n进制都可以使用倒除法:对十进制进行除n的运算,直到商为0为止,然后将各个步骤中得到的余数倒着写出来.
n进制转十进制:(例子:二进制转十进制)
101001 => 2^5 + 2^3 + 1 = 32 + 8 + 1 = 41
10111 => 2^4 + 2^2 + 2 + 1 = 16 + 4 + 2 +1 = 23
同样类推一下,n进制转十进制就是将2为底换成n为底就好了


还有其他方法,比如使用中间二进制,
例如,将十进制转成八进制或者十六进制,先转成二进制再转成八进制或者十六进制
十进制 => 二进制 => 十六进制
520 => 1000001000 (512+8) => 10 0000 1000 => 208(十六进制)
1314 => 10100100010(二进制) => 2442(八进制) => 522(十六进制)


八进制或者十六进制转成十进制
十六进制 => 二进制 => 十进制
522 => 0101 0010 0010 => 1024 + 256 + 32 + 2 = 1280+34 = 1314(十进制)

十进制转其他进制的数

使用内置函数bin、oct、hex可以将整数转换成对应的二进制、八进制、十六进制;
注意只能转换整数,返回的数据是一个字符串类型

a = 12# 默认数字都是十进制
print(a)# 12
b = 0b0101010111#以0b开头的是二进制数,默认也是十进制输出
print(b)# 343
c = 0o33# 以0o开头的是八进制数
print(c)# 27
d = 0x24# 以0x开头的是十六进制数
print(d)# 36
a = 12 # 12是十进制数
print(bin(a))# 0b1100 使用bin内置函数可以将数字转换为二进制
print(oct(a))# 0o14 使用oct内置函数可以将数字转换为八进制
print(hex(a))# 0xc 使用hex内置函数可以将数字转换为十六进制
print(type(bin(a)))# <class 'str'>
print(bin(0o1111))# 0b1001001001
print(bin(0xff))# 0b11111111
print(oct(0xff))# 0o377
print(hex(0b00011111)) # 0x1f
# print(bin(1.12))
# print(oct(1.12))
# print(hex(1.12))
# TypeError: 'float' object cannot be interpreted as an integer

其他进制转换成十进制

int函数的使用
int(x, base=10)base是进制,默认是十进制
int函数常用来将其他类型的数据转换成整型
注意
x 有两种:str / int
1、若 x 为纯数字,就不能给base传参数,否则就会报错
2、若 x 为 str,则可以给base传参,不传就默认是10;给base传什么参数就认为此字符串为什么进制的数,然后把它转换成十进制的数,但字符串里的数必须符合该进制规范,否则会报错

print(int(3.112))# 3
# print(int(3.112,8))# TypeError: int() can't convert non-string with explicit base
print(int('10',2))# 2
# print(int('22',2))# ValueError: invalid literal for int() with base 2: '22'
print(int('0xaaa',16))# 2730
print(int('0b111',2))# 7
print(int('0o1237',8))# 671

到此这篇关于python 进制转换 int、bin、oct、hex的原理的文章就介绍到这了,更多相关python 进制转换 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用python实现baidu hi自动登录的代码
Feb 10 Python
python中常用的各种数据库操作模块和连接实例
May 29 Python
python使用线程封装的一个简单定时器类实例
May 16 Python
python操作字典类型的常用方法(推荐)
May 16 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
Python实现控制台中的进度条功能代码
Dec 22 Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 Python
完美解决python中ndarray 默认用科学计数法显示的问题
Jul 14 Python
Python 实现两个服务器之间文件的上传方法
Feb 13 Python
Django框架表单操作实例分析
Nov 04 Python
python实现网络五子棋
Apr 11 Python
python pillow库的基础使用教程
Jan 13 #Python
用python-webdriver实现自动填表的示例代码
Jan 13 #Python
python 装饰器的基本使用
Jan 13 #Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 #Python
浅谈Selenium+Webdriver 常用的元素定位方式
Jan 13 #Python
Selenium Webdriver元素定位的八种常用方式(小结)
Jan 13 #Python
基于python+selenium自动健康打卡的实现代码
Jan 13 #Python
You might like
PHP在线生成二维码代码(google api)
2013/06/03 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
javascript实现的网页局布刷新效果
2008/12/01 Javascript
JavaScript中null与undefined分析
2009/07/25 Javascript
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
JS实现的全排列组合算法示例
2017/10/09 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
Python中http请求方法库汇总
2016/01/06 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
Python学习小技巧总结
2018/06/10 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
铭立家具面试题
2012/12/06 面试题
80后职场人的职业生涯规划
2014/03/08 职场文书
学校节能减排方案
2014/06/13 职场文书
2014年平安建设工作总结
2014/11/19 职场文书
百家讲坛观后感
2015/06/12 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书
PHP控制循环操作的时间
2021/04/01 PHP
电频谱管理的原则是什么
2022/02/18 无线电
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python