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 相关文章推荐
pyramid配置session的方法教程
Nov 27 Python
Python程序设计入门(1)基本语法简介
Jun 13 Python
python实现定制交互式命令行的方法
Jul 03 Python
python实现ID3决策树算法
Dec 20 Python
Python进阶之递归函数的用法及其示例
Jan 31 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
Mar 22 Python
Python参数类型以及常见的坑详解
Jul 08 Python
Pycharm连接远程服务器并实现远程调试的实现
Aug 02 Python
Python K最近邻从原理到实现的方法
Aug 15 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
Python第三方库的几种安装方式(小结)
Apr 03 Python
Python实现UDP程序通信过程图解
May 15 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 cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
2014/07/24 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
JS高级笔记
2011/07/13 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
详解ES6 扩展运算符的使用与注意事项
2020/11/12 Javascript
Python 序列化 pickle/cPickle模块使用介绍
2014/11/30 Python
Python中列表的一些基本操作知识汇总
2015/05/20 Python
Python实现简单的语音识别系统
2017/12/13 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
详解python 爬取12306验证码
2019/05/10 Python
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
PyQt5实现画布小程序
2020/05/30 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
计算机求职自荐信范文
2014/04/19 职场文书
十佳青年事迹材料
2014/08/21 职场文书
森马旗舰店双十一营销方案
2014/09/29 职场文书
模范教师事迹材料
2014/12/16 职场文书
我是特种兵观后感
2015/06/11 职场文书
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
nginx配置虚拟主机的详细步骤
2021/07/21 Servers
HttpClient实现文件上传功能
2022/08/14 Java/Android