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实现获取操作系统版本信息方法
Apr 08 Python
python实现linux下使用xcopy的方法
Jun 28 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
Python编程实现线性回归和批量梯度下降法代码实例
Jan 04 Python
Python如何抓取天猫商品详细信息及交易记录
Feb 23 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
python自动发送测试报告邮件功能的实现
Jan 22 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
May 16 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Sep 25 Python
使用matlab或python将txt文件转为excel表格
Nov 01 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
Pandas之缺失数据的实现
Jan 06 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 中的str_replace 函数总结
2007/04/27 PHP
php生成图形验证码几种方法小结
2013/08/15 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
原生js实现日期联动
2015/01/12 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
vue 移动端适配方案详解
2018/11/15 Javascript
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
Python通过select实现异步IO的方法
2015/06/04 Python
Python中标准模块importlib详解
2017/04/16 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
给我一面国旗 python帮你实现
2019/09/30 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
财务管理职业生涯规划范文
2013/12/27 职场文书
网络程序员自荐信
2014/01/25 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
企业法人授权委托书
2014/09/25 职场文书
银行职员工作失误检讨书
2014/10/14 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
撤诉书怎么写
2015/05/19 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书