Python为我们提供了强大的内置函数和格式化数字的方法去实现进制转换的功能,下面一一介绍。

先将所有的函数罗列出来,如下:

2进制 8进制 10进制 16进制
2进制 - bin(int(n,8)) bin(int(n,10)) bin(int(n,16))
8进制 oct(int(n,2)) - oct(int(n,10)) oct(int(n,16))
10进制 int(n,2) int(n,8) - int(n,16)
16进制 hex(int(n,2)) hex(int(n,8)) hex(int(n,10)) -

原理:python内置函数进行进制转换的原理是将读入的一个字符串(python默认读入的都是字符串形式)转为10进制,然后再用相关函数进行其他进制转换

下面来逐一介绍每个函数的具体使用方法:

2进制转换成其他进制:

2进制转换成8进制:oct(int(n,2))

n=input()
print(oct(int(n,2)))

输入: 1010
输出: 0o12

2进制转换成10进制:int(n,2)

n=input()
print(int(n,2))

输入:1010
输出:10

2进制转换成16进制:hex(int(n,2))

n=input()
print(hex(int(n,2)))

输入:1010
输出:0xa

8进制转换成其他进制:

8进制转换成2进制:bin(int(n,8))

n=input()
print(bin(int(n,8)))

输入:1010
输出:0b1000001000

8进制转换成10进制:int(n,8)

n=input()
print(int(n,8))

输入:1010
输出:520

8进制转换成16进制:hex(int(n,16))

n=input()
print(hex(int(n,8)))

输入:1010
输出:0x208

10进制转换成其他进制:

说明:10进制转换可以直接采取上述表格中的形式,读入字符串,先转换为10进制的数,再用函数进行操作转换成其他进制。
但同时可以这样操作,读入的时候直接进行强制类型转换操作,转为int类型(python中的int类型的数据就是10进制)

10进制转换成2进制:bin(n)

n=int(input())
print(bin(n))

输入:10
输出:0b1010

10进制转换成8进制:oct(n)

n=int(input())
print(oct(n))

输入:10
输出:0o12

10进制转换成16进制:hex(n)

n=int(input())
print(hex(n))

输入:10
输出:0xa

16进制转换成其他进制:

16进制转换成2进制:bin(int(n,16))

n=input()
print(bin(int(n,16)))

输入:a
输出:0b1010

16进制转换成8进制:oct(int(n,16))

n=input()
print(oct(int(n,16)))

输入:a
输出:0o12

16进制转换成10进制:int(n,16)

n=input()
print((int(n,16)))

输入:a
输出:10

注意:我们可以发现,除了转换成10进制的数,其他的进制转换结果都带有前缀,2进制是0b,8进制是0o,16进制是0x。但是我们在绝大部分使用进制转换后的数据时,是不需要它的前缀的。所以笔者这里介绍两种方法,去掉它的前缀。

方法一:使用字符串切片操作

原理:就是将进制转换后得到的结果对其进行字符串切片操作,将得到的结果从第三个字符开始取结果即可,这样我们可以得到不带前缀的结果

举例:

//10进制转换成2进制
n=int(input())
print(bin(n)[2:])//切片操作

输入:10
输出:1010

//10进制转换成8进制
n=int(input())
print(oct(n)[2:])//切片操作

输入:10
输出:12

//10进制转换成16进制
n=int(input())
print(hex(n)[2:])//切片操作

输入:10
输出:a

笔者这里以10进制转换其他进制进行了举例,其他的情况类比即可。

方法二:使用format函数进行格式化数字操作

说明:首先,笔者在前面说过,不同类型的进制转换的原理时先转换为十进制,然后再用相关的函数进行禁止转换操作,而format函数里面有格式化数字的方法可以直接实现进制转换的功能,下面一一介绍:

其他类型转换为2进制:
操作:在format函数的槽中添加一个b 即可实现其他类型对2进制的转换,下面举例说明

n=input()
print("{:b}".format(int(n,8)))
//先将8进制的数转换为10进制,
//然后在format的槽中添加一个b,等价于实现了bin函数的功能
//但是此结果是不带有0b前缀的

输入:1010
输出:1000001000

其他类型转换为8进制:

操作:在format函数的槽中添加一个o 即可实现其他类型对8进制的转换,下面举例说明

n=input()
print("{:o}".format(int(n,16)))
//先将一个16进制数转换为10进制
//然后利用format函数格式化数字方法转换即可

输入:a
输出:12

其他类型转换为16进制:
操作:在format函数的槽中添加一个x 即可实现其他类型对2进制的转换,下面举例说明

n=input()
print("{:x}".format(int(n,8)))
//先将一个8进制的数转换为16进制
//然后原理同上

输入:1010
输出:208

注意:由于转换成10进制本来就是不带前缀的,无需用format格式化数字方法控制

Python进制转换详细介绍相关推荐

  1. python进制转换简述

    python进制转换可以参考十进制理解,逢十进一 同理二进制就是逢二进一,八进制逢八进一,十六进制逢十六进一,这里要注意,十六进制由0-9,和a,b,c,d,e,f组成,a-f分别代表10-15 1. ...

  2. python 进制转换 递归_python--使用递归优雅实现列表相加和进制转换

    咦,好像坚持了一段时间,感觉又有新收获啦. # coding: utf-8 class Stack: def __init__(self): self.items = [] # 是否为空 def is ...

  3. Python进制转换10进制转换为16进制,不使用hex函数

    笔试中遇到的问题 Python进制转换10进制转换为16进制,不使用hex函数 给定一个整数,编写一个算法将这个数转换为十六进制数.对于负整数,我们通常使用 补码运算 方法. 注意: 十六进制中所有字 ...

  4. 小白兔入手:Python进制转换问题(二进制、八进制、十进制、十六进制)

    巩固完C语言和C++的相关算法后,开始学习这个号称简洁.功能强大.无所不能的Python语言,真是稀奇啊!! 这次来总结一下关于进制问题在Python中如何实现的,以及为什么当我就输入input函数时 ...

  5. python进制转换函数及方法

    python进制转换函数 一.通过int函数实现其他进制转十进制 假设 M 为某已知进制字符串 n 的进制数 result = int(n,M) --------------------------- ...

  6. Python进制转换后去掉“0b“,“0x“,“0o“

    Python在进制转换之后会带上"0b"."0x"."0o"的进制转换符,而在具体使用过程中,很多时候我们又并不希望输出的结果带上进制前缀, ...

  7. python进制转换函数-Python中进制转换函数的使用

    Python中进制转换函数的使用 关于Python中几个进制转换的函数使用方法,做一个简单的使用方法的介绍,我们常用的进制转换函数常用的就是int()(其他进制转换到十进制).bin()(十进制转换到 ...

  8. python进制转换大全

    二进制bin() : 描述:将其它进制的数转换为二进制的数.如八进制,十进制,十六进制等. 语法:bin(number)  返回一个二进制数. number -- 其它进制的数 八进制oct(): 描 ...

  9. Python进制转换的完全实现——2/10/16进制原/补码互转

    一.需要转换的几种情况 不带符号位的整数 2进制 10进制 16进制 2进制 – bin2dec() bin2hex() 10进制 dec2bin() – dec2hex() 16进制 hex2bin ...

最新文章

  1. oracle数据库结束进程后怎么重启,Oracle数据库的启动与关闭方法
  2. PHP 邮件发送系统
  3. 抽象数据类型Triplet的C语言实现
  4. AspNet Core 下利用普罗米修斯+Grafana构建Metrics和服务器性能的监控
  5. 必须掌握的八个cmd命令行
  6. Java-HibernateValidation校验bean
  7. 《设计模式详解》行为型模式 - 状态模式
  8. 内核中的do while(0)
  9. java学习之自定义异常
  10. 02 Toolbar的使用
  11. 三款免费好用的Gif制作神器
  12. java 实现屏幕录像_用JAVA捕获屏幕、屏幕录像、播放
  13. R语言-数据包络分析法--DEA模型
  14. 股票10档接口如何获取数据-步骤
  15. 一名中专生的坎坷程序人生(下)
  16. 推荐两个Android模拟器,轻松解决模拟器调试java.lang.UnsatisfiedLinkError: dlopen failed~~
  17. 剪辑视频怎么加音效 视频音效常用都有哪些类型
  18. 语音信号a率压缩算法c语言,基于OMAP5912平台的语音压缩算法实现
  19. libsvmpredict和svmtrain的参数和返回值
  20. Sharding Sphere 与 Lcn事务区别

热门文章

  1. 【渝粤教育】电大中专市场营销管理22作业 题库
  2. UBUNTU中可用的不同VIM包之间有什么区别?vim-gtk和vim-gnome,vim-nox,vim-athena
  3. 如何正确的区分ByName和ByType?别纠结了!!!
  4. Linux 正则表达式与元字符
  5. iOS开发-Runloop探索
  6. php大作业关于中国美食,我爱中国美食作文700字
  7. c51单片机矩阵键盘1602计算器_【Proteus】单片机配合矩阵键盘LCD1602制作简易计算器...
  8. [转帖]100级高级驱魔谈挑战现状
  9. php实现打字效果,JS实现的打字机效果示例代码
  10. GIT学习0基础到入门(附图)