设为首页 收藏本站
查看: 725|回复: 0

[经验分享] Python 入门教程 16 ---- Introduction to Bitwise Operators

[复制链接]

尚未签到

发表于 2017-5-4 08:28:54 | 显示全部楼层 |阅读模式
  

  第一节
    1 介绍了Python的二进制
    2 我们利用0bxx来表示一个二进制,比如1 = 0b1,2 = 0b10等等
  

  第二节
    1 介绍了Python的函数bin(x),主要是用来求10进制数x的二进制值
    2 比如bin(2)为0b10
    3 练习:打印出2~5之间的数的二进制值

print bin(1)
for i in range(2,6):
print bin(i)


  第三节
    1 介绍了Python的int()函数
    2 最普通的int()函数的用法是int(str)是把一个字符串转化成一个数字
    3 但是int(str,base)可以用来把base进制下的值转化为10进制,比如int("0b11",2)得到的值就是3
    4 举例:

print int("1",2) >> 1
print int("10",2) >> 2
print int("111",2) >> 7
print int("0b100",2) >> 4
print int(bin(5),2) >> 5
print int("11001001",2) >> 201


  第四节
    1 介绍了Python的左移和右移运算
    2 位移运算的举例

Left Bit Shift (<<)  
0b000001 << 2 = 0b000100 (1 << 2 = 4)
0b000101 << 3 = 0b101000 (5 << 3 = 40)      
Right Bit Shift (>>)
0b0010100 >> 3 = 0b000010 (20 >> 3 = 2)
0b0000010 >> 2 = 0b000000 (2 >> 2 = 0)

  3 练习:把变量的shift_right的右移两位,shift_left的值左移两位
shift_right = 0b1100
shift_left = 0b1
# Your code here!
shift_right >>= 2
shift_left <<= 2
print bin(shift_right)
print bin(shift_left)


  第五节
    1 介绍了Python的另外一种位运算&
    2 比如a&b,就是两个位都是1为1,否则为0

  a:   00101010   42
b:   00001111   15      
===================
a & b:   00001010   10

  3 练习:把二进制0b1110&0b101的结果用二进制打印出来
print bin(0b1110&0b101)


  第六节
    1 介绍了Python的另外一种位运算|
    2 比如a|b,就是如果两个位中有1就为1,否则为0

    a:  00101010  42
b:  00001111  15      
================
a | b:  00101111  47

  3 练习:把二进制0b1110|0b101的结果用二进制打印出来
print bin(0b1110|0b101)


  第七节
    1 介绍了Python的另外一种位运算^
    2 比如a^b,就是如果两个位中如果是不同的那么就为1,否则为0

a:  00101010   42
b:  00001111   15      
================
a ^ b:  00100101   37

  3 练习:把二进制0b1110^0b101的结果用二进制打印出来
print bin(0b1110^0b101)


  第八节
    1 介绍了Python的另外一种位运算~
    2 比如~a的结果就是a的相反数在减一,对于a是正数或负数都满足
    3 举例

print ~-4 >> 3
print ~-3 >> 2
print ~-1 >> 0
print ~0 >> -1
print ~1 >> -2
print ~2 >> -2
print ~3 >> -2

  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-372725-1-1.html 上篇帖子: python实现登录QQ邮箱发信的代码 下篇帖子: python 可变数据和不可变数据解析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表