温文默克的学习笔记Python篇(6.5)——进制转换

今天为大家分享温文默克的学习笔记Python篇(6.5)——进制转换。对于接触过电脑的人来说进制转换应该都不陌生,即使不是特别了解,也肯定曾经听过,今天笔者简单来说一下各进制是如何计数的以及它们如何在Python中来实现。

进制转换是人们利用符号来计数的方法,我们日常使用的比较多的是10进制,使用的数字有0、1、2、3、4、5、6、7、8、9共十种。以123为例,123表示的是由1,2,3这三个数字组成的一个称作123的数,其中1表示“100的个数”,2表示“10的个数”,3表示“1的个数”,123这个数就是1个100,2个10以及3个1累加的结果。就是123=1×100+2×10+3×1,也可以写成123=1×10^2+2×10^1+3X10^0,这里10^2、10^1和10^0中的10称作10进制计数法的基数或底,其他不同进制则按不同的数字作为基数,比如2进制的基数就是2,8进制的基数就是8,感兴趣的朋友可以阅读相关资料。

进制之间可以互相转换,比如十进制转二进制的话除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除,直到商为0为止。

二进制转十进制则需要把二进制数按权展开、相加即得十进制数。

在Python中进行进制转换时不需要特别麻烦,很多自带的函数就可以做到这一点。

其他进制转换成十进制可以使用int()函数,int() 函数能够将一个字符串或数字转换为整型。int(x, base=10),参数x表示字符串或数字,参数base表示进制数,默认十进制。更换base参数的值就可以实现其他进制转换成十进制,不过要注意一下的是如果是带参数base的话,前面的数字要以字符串的形式进行输入,否则报错。

此外,使用format匹配进行转换和eval()函数也可以做到,不过用这两个的话都需要加上前缀,其中二进制的前缀为0b,八进制的前缀为0o,十进制的前缀为0d,十六进制的前缀为0x。

而十进制转换成其他进制也很容易,既可以使用bin(),oct(),hex()返回对应进制的数(bin转2进制,oct转8进制,hex转16进制),也可以使用format字符串匹配进行转换。

笔者今天关于进制的分享就是这些,进一步的分享日后找机会笔者再分享给大家。同时笔者还说一些别的,最近武汉的疫情很严重,大家出行的时候记得戴好口罩,也希望这次的疫情能够尽快得到控制,临近过年,祝大家新年好(记得口罩)~

举报
评论 0