一、数字类型的参数与返回值
在文章Python基本数据类型之数字型中我们学习了数字类型包括int 和 float。知道使用 age = 18 可以定义一个变量,申请一块内存空间存入18,然后将内存空间绑定给变量age。那么这个申请内存动作是谁完成的呢?其实是int()实现了这个功能。age = int(18)实现了一样的效果。()中传入的值就叫做参数。int()运行完会生成一个值,叫做返回值,我们使用age接收了这个返回值。
二、数字类型与进制转换
我们日常中的数学计算都是以十进制进行计算的,即满10进1。但是计算机只能识别电信号,电信号只有高低电平两种,对应二进制的0和1,因此计算机只能识别二进制。二进制是满2进1。此外在计算机表示中还有两个常用的进制,分别是八进制和十六进制。
2.1、其他进制转换为十进制
首先我们看下十进制。例234,可以看成 210^2 + 310^1 + 4*10^0。 同样的二进制也是这么计算的。如图所示:
上图中演示了二进制如何转换为十进制。可以用同样的方法将八进制和十六进制转换为十进制。如:
八进制转十进制
234 -> 2*8^2 + 3*8^1 + 4*8^0 -> 128 + 24 + 4 = 256
十六进制转十进制
36d -> 3*16^2 + 5*16^1 + 13*16^0 -> 768 + 96 + 13 = 877
2.2、十进制转换为其他进制
十进制转为其他进制最常用的就是连除法。
如上所示,从二进制我们可以看出,用十进制数除2求余,将余数倒序排列得到的就是二进制数。十进制转为八进制是除8取余,同样的十进制转为十六进制是除19取余。这是就不再演示。
2.3、二进制、八进制、十六进制互相转换
由于2^3=8,所以每三位二进制可以转换为一个八进制数。同理,每四位二进制可以转换为一个八进制数
如图所示,二进制转八进制可以每三位做一个分组。分别求出这三位对应的求值,得到的就是八进制。八进制转换为二进制,同样的每位用连除法得到最终的二进制。
三、Python中的进制转换方法
python中内置了各种进制间的转换方法
# 十进制转二进制
>>> print(bin(12))
0b1100
# 十进制转八进制
>>> print(oct(12))
0o14
# 十进制转十六进制
>>> print(hex(12))
0xc
可以看到,不同进制在python中使用了不同的前缀,二进制使用的是0b、八进制是0o、十六进制前缀是0x。接下来我们看下其他进制怎么转换为十进制。
# 其他进制转换为十进制
>>> print(int('0b1100', 2))
12
>>> print(int('0o14', 8))
12
>>> print(int('0xc', 16))
12
可以看到,使用int()就可以完成其他进制到十进制的转换。那二进制如何转换为八进制呢,这里我们可以先把二进制转换为十进制,再通过oct()就可以实现了。
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付
