实例 51
题目
学习使用按位与 & 。
分析
按位与时,相当于将其转换为二进制,然后按照如下规则进行与运算即可;
1 & 1 = 10 & 0 = 00 & 1 = 01 & 0 = 0
代码
#!/usr/bin/env python# -*- coding: utf-8 -*-# @version : 1.0# @Time : 2021/4/10 21:06# @Author : cunyu# @Email : 747731461@qq.com# @Site : https://cunyu1943.site# 公众号 : 村雨遥# @File : 51.py# @Software: PyCharm# @Desc : 练习实例51if __name__ == '__main__':a = 100b = 23print('a & b = %d' % (a & b))print('b & 10 = %d' % (b & 10))print('a & 110 = %d' % (a & 110))
结果

实例 52
题目
学习使用按位或 | 。
分析
按位或时,相当于将其转换为二进制,然后按照如下规则进行或运算即可;
1 | 1 = 10 | 0 = 00 | 1 = 11 | 0 = 1
代码
#!/usr/bin/env python# -*- coding: utf-8 -*-# @version : 1.0# @Time : 2021/4/10 21:09# @Author : cunyu# @Email : 747731461@qq.com# @Site : https://cunyu1943.site# 公众号 : 村雨遥# @File : 52.py# @Software: PyCharm# @Desc : 实例 52if __name__ == '__main__':a = 20b = 2print('a | b = %d' % (a | b))print('b | 10 = %d' % (b | 10))print('a | 110 = %d' % (a | 110))
结果

实例 53
题目
学习使用按位异或 ^ 。
分析
按位异或时,相当于将其转换为二进制,然后按照如下规则进行异或运算即可;
1 ^ 1 = 00 ^ 0 = 00 ^ 1 = 11 ^ 0 = 1
代码
#!/usr/bin/env python# -*- coding: utf-8 -*-# @version : 1.0# @Time : 2021/4/10 21:23# @Author : cunyu# @Email : 747731461@qq.com# @Site : https://cunyu1943.site# 公众号 : 村雨遥# @File : 53.py# @Software: PyCharm# @Desc : 练习实例53if __name__ == '__main__':a = 20b = 2print('a ^ b = %d' % (a ^ b))print('b ^ 10 = %d' % (b ^ 10))print('a ^ 110 = %d' % (a ^ 110))
结果

实例 54
题目
取一个整数 a 从右端开始的 4 〜 7 位。
分析
- 先将 a 向右移动 4 位;
- 设置一个低 4 位全为 1,其余全为 0 的数;
- 然后将上面的两个数进行
&运算即可;
代码
#!/usr/bin/env python# -*- coding: utf-8 -*-# @version : 1.0# @Time : 2021/4/10 21:25# @Author : cunyu# @Email : 747731461@qq.com# @Site : https://cunyu1943.site# 公众号 : 村雨遥# @File : 54.py# @Software: PyCharm# @Desc : 练习实例54if __name__ == '__main__':num1 = int(input("输入:\n"))num2 = num1 >> 4num3 = ~(~0 << 4)num4 = num2 & num3print('%o\t%o' % (num1, num4))
结果

实例 55
题目
学习使用按位取反 ~。
分析
按位取反,就是将其转换为二进制后,按照如下规则进行转换:
- 按位取反:二进制每一位取反,0 变为 1,1 变为 0;
- 最高位为符号位,整数符号位为 0,负数符号位为 1;
代码
#!/usr/bin/env python# -*- coding: utf-8 -*-# @version : 1.0# @Time : 2021/6/18 14:45# @Author : cunyu# @Email : 747731461@qq.com# @Site : https://cunyu1943.site# 公众号 : 村雨遥# @File : 55.py# @Software: PyCharm# @Desc : 实例 55if __name__ == '__main__':while True:num = int(input("输入一个整数\n"))print("按位取反后的结果:" + str(~num))
结果

