python学习笔记 | 进制转换问题
前言
今天有同学来问我关于二级python计算机考试中进制间的转换问题,才想起来好久没有复习这方面的知识了,大都已经忘却,于是花了两个小时梳理了下脉络,这一篇就写来记录一下。
关于进制
这是我的一本二级python教程书籍上关于进制的介绍:
总结下来进制分四种:
- 十进制
- 二进制(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()的第一个参数为字符串类型
/略显粗糙/
完结,撒花🎉