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自动化测试之连接几组测试包实例
Sep 28 Python
python集合类型用法分析
Apr 08 Python
详解在Python程序中使用Cookie的教程
Apr 30 Python
Python写的一个定时重跑获取数据库数据
Dec 28 Python
Java及python正则表达式详解
Dec 27 Python
Windows环境下python环境安装使用图文教程
Mar 13 Python
浅析python继承与多重继承
Sep 13 Python
解决python selenium3启动不了firefox的问题
Oct 13 Python
使用python绘制二元函数图像的实例
Feb 12 Python
python3实现小球转动抽奖小游戏
Apr 15 Python
django如何通过类视图使用装饰器
Jul 24 Python
python实现几种归一化方法(Normalization Method)
Jul 31 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实现ODBC数据分页显示一例
2006/10/09 PHP
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
php标签云的实现代码
2012/10/10 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
php Calender(日历)代码分享
2014/01/03 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
JavaScript 继承详解 第一篇
2009/08/30 Javascript
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
2019/02/21 Javascript
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
微信公众号服务器验证Token步骤图解
2019/12/30 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
pandas Dataframe行列读取的实例
2018/06/08 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
python中count函数简单的实例讲解
2020/02/06 Python
Python实现括号匹配方法详解
2020/02/10 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
医学生自荐信范文
2013/12/03 职场文书
民间借贷协议书范本
2014/10/01 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
工程服务质量承诺书
2015/04/29 职场文书
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js