当前位置: 首页 > news >正文

Python 入门教程 16 ---- Introduction to Bitwise Operators


第一节

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



相关文章:

  • table与div对待边框的一点儿区别
  • 浅析人脸检测之Haar分类器方法
  • 震撼!!
  • Linux基本操作 7----- vi操作的详细信息
  • 基准电压——Reference voltage
  • linux下alias命令
  • 黑马程序员_properties,打印流,合并流,分割流
  • 软件架构师的12项修炼_读书纪要_P3商务技能修炼
  • 内存对齐规则
  • 【Deep Learning学习笔记】Deep learning for nlp without magic_Bengio_ppt_acl2012
  • 不用外部JAR包,自己实现JSP文件上传!
  • 计算机技术不是吓唬大众的工具!
  • Windows程序设计学习笔记--第一个Windows程序以及宽字符集(了解)
  • 云计算和大数据入门
  • Windows Azure使用必读
  • [译] 怎样写一个基础的编译器
  • 5、React组件事件详解
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Android组件 - 收藏集 - 掘金
  • CSS实用技巧干货
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • JAVA 学习IO流
  • js中forEach回调同异步问题
  • ng6--错误信息小结(持续更新)
  • PV统计优化设计
  • React 快速上手 - 07 前端路由 react-router
  • SQLServer之索引简介
  • uni-app项目数字滚动
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 复杂数据处理
  • 面试遇到的一些题
  • 三分钟教你同步 Visual Studio Code 设置
  • 使用SAX解析XML
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 用jquery写贪吃蛇
  • UI设计初学者应该如何入门?
  • ​学习一下,什么是预包装食品?​
  • ​用户画像从0到100的构建思路
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • $.ajax()
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (接口封装)
  • (循环依赖问题)学习spring的第九天
  • (轉貼) UML中文FAQ (OO) (UML)
  • .gitignore文件---让git自动忽略指定文件
  • .net 按比例显示图片的缩略图
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • @property python知乎_Python3基础之:property
  • [\u4e00-\u9fa5] //匹配中文字符
  • []常用AT命令解释()
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [ACM] hdu 1201 18岁生日
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [C# 基础知识系列]专题十六:Linq介绍