python学习笔记 | 进制转换问题

640

前言

今天有同学来问我关于二级python计算机考试中进制间的转换问题,才想起来好久没有复习这方面的知识了,大都已经忘却,于是花了两个小时梳理了下脉络,这一篇就写来记录一下。

关于进制

这是我的一本二级python教程书籍上关于进制的介绍:

161599827873_.pic

总结下来进制分四种:

  • 十进制
  • 二进制(0b或0B)
  • 八进制(0o或0O)
  • 十六进制(0x或0X)

使用传统方法计算进制

使用python内置函数转换

这里涉及到几个函数:

int(a,b) 任意进制转换为十进制,这个函数有a、b两个参数,a为待转换的对象,数据类型为字符串;b为a的进制类型;可以进行多种进制转换成十进制,如二转十、八转十、十六转十
bin(a) 十进制转换为二进制,参数a为待转换的对象,数据类型为整数类型;返回对象是字符串类型
oct(a) 十进制转换为八进制,参数a为待转换的对象,数据类型为整数类型;返回对象是字符串类型
hex(a) 十进制转换为十六进制,参数a为待转换的对象,数据类型为整数类型;返回对象是字符串类型

方法就这几个,使用起来会稍显混乱,总结一下技巧和转换思路,其实就三种套路:

  • 如果是十进制转换成其他进制,则直接使用相对应的函数,如bin()、oct()即可
  • 如果是其他进制转换成十进制,则使用oct(a,b),使用方法参考上方表格
  • 如果是其他进制转换成除十进制外的进制,则需把转换对象先转为十进制,再使用相对应的函数进行转换

总结一下:

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

ps:

注意这几个函数的参数的数据类型,如oct()、bin()、hex()的参数为整数类型,int()的第一个参数为字符串类型

181599827875_.pic/略显粗糙/

完结,撒花🎉


702 字