青少年学Python-06:认识进制与按位运算

梁老师
梁老师 北京小升初老师~

0 人点赞了该文章 · 60 浏览





图片

01 认识进制  


本小节带大家认识一下二进制、八进制、十进制、十六进制。十进制数就是我们数学中通常所见的正整数,这里就不再赘述,那我们开始学习其他进制数吧~

1、二进制:只用“0”和“1”两个数来表示二进制,以2为基数,逢2进1。在Python中,以“0b”开头的数字为二进制数,使用bin()函数,可将十进制数转换成二进制。

2、八进制:使用数字“0~7”来表示八进制数,以8为基数,逢8进1。在Python中,以“0o”开头的数字为八进制数,使用oct()函数,可将十进制数转换成八进制。

3、十进制:在Python中int类型的数就是十进制,使用int()函数可将其他进制的数转换成十进制。

4、十六进制:使用数字“0~9”和字母“A-F(代表:10-15)”来表示16进制,以16为基数,逢16进1位。在Python中,以“0x”开头的数字为16进制数,使用hex()函数,可将十进制数转换成八进制。


图片
图片
图片

案例教学:进制转换

# 100的二进制、八进制、十进制(),(Shell模式下)

>>>bin(100)  # 二进制

'0b1100100'

>>>oct(100)  # 八进制

'0o144'

>>>hex(100) # 十六进制

'0x64'

# 二进制'0b110010'转十进制

>>>int('0b110010',2)

50

# 八进制'0o62'转十进制

>>>int('0o62',8)

50

# 十六进制'0x32'转十进制

>>>int('0x32',16)

50


图片
图片
图片

十进制转二进制计算

整数部分采用 "除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。如下图所示:

图片

其他进制转十进制计算之“按权展开求和”

1、二进制转十进制如'0b110010',从最后一位往前数权重是0、1、2、3、4、5,则该二进制的十进制为:1*2**5+1*2**4+0*2**3+0*2**2+

 1*2**1+0*2**0=50;

2、八进制转十进制方法同上,只不过2变成了8的次幂进行计算。如'0o62',从最后一位往前数权重是0、1,则该八进制的十进制为:6*8**1+2*8**0=48+2=50;

3、十六进制转十进制方法同上,只不过2变成了16的次幂进行计算。如'0x32',从最后一位往前数权重是0、1,则该八进制的十进制为:3*16**1+2*16**0=48+2=50。


图片
图片

02 按位运算


在Python中位运算是先把十进制转换成二进制,然后按二进制位进行的计算。

图片


图片
图片
图片

案例教学:按位运算

>>>100 & 99

96

'''

解释:100的二进制为'0b1100100',99的二进制为'0b1100011',根据与的运算法则,结果为:'0b1100000',使用int('0b1100000',2)可得'0b1100000'的十进制为96

'''

>>> 100 | 99

103

'''

解释:100的二进制为'0b1100100',99的二进制为'0b1100011',根据或的运算法则,结果为:'0b1100000',使用int('0b1100111',2)可得'0b1100111'的十进制为103

'''

>>> 100 ^ 99

7

'''

解释:100的二进制为'0b1100100',99的二进制为'0b1100011',根据异或的运算法则,结果为:'0b0000111',使用int('0b0000111',2)可得'0b0000111'的十进制为7

'''

>>> 50 <<1

100

>>> 50 << 2

200

'''

左移一位相当于乘以2。

'''

>>> 100 >> 1

50

>>> 100 >> 2

25

'''

右移一位相当于除以2。

'''


测一测

图片

图片

下列进制转换成十进制数正确的是()

A.'0b10100' --> 20    

B.'0o36' --> 36 

C.10 --> '0b1110'    

D. '0x28'--> 28 


图片


添加 家长论坛微信 



发布于 2024-04-25 09:00

免责声明:

本文由 梁老师 原创发布于 家长帮 ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论

All Rights Reserved Powered BY WeCenter V4.1.0 © 2026 京ICP备20005761号-2