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动态加载模块的3种方法
Nov 22 Python
用PyQt进行Python图形界面的程序的开发的入门指引
Apr 14 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
python获取指定时间差的时间实例详解
Apr 11 Python
python 输入一个数n,求n个数求乘或求和的实例
Nov 13 Python
Python 通过打码平台实现验证码的实现
May 13 Python
Python使用指定端口进行http请求的例子
Jul 25 Python
np.random.seed() 的使用详解
Jan 14 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
Mar 09 Python
解决python中0x80072ee2错误的方法
Jul 19 Python
python文件与路径操作神器 pathlib
Apr 01 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弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
php如何获取文件的扩展名
2015/10/28 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
js css自定义分页效果
2017/02/24 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
OpenLayers3实现图层控件功能
2020/09/25 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
python学生信息管理系统(初级版)
2018/10/17 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
2016/04/15 面试题
为什么要使用servlet
2016/01/17 面试题
计算机软件专业求职信
2014/06/10 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
2015年资料员工作总结
2015/04/25 职场文书
奖学金发言稿(范文)
2019/08/21 职场文书