实例 51
题目
学习使用按位与 & 。
分析
按位与时,相当于将其转换为二进制,然后按照如下规则进行与运算即可;
1 & 1 = 1
0 & 0 = 0
0 & 1 = 0
1 & 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 : 练习实例51 if __name__ == '__main__': a = 100 b = 23 print('a & b = %d' % (a & b)) print('b & 10 = %d' % (b & 10)) print('a & 110 = %d' % (a & 110))
实例 52
题目
学习使用按位或 |
。
分析
按位或时,相当于将其转换为二进制,然后按照如下规则进行或运算即可;
1 | 1 = 1
0 | 0 = 0
0 | 1 = 1
1 | 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 : 实例 52 if __name__ == '__main__': a = 20 b = 2 print('a | b = %d' % (a | b)) print('b | 10 = %d' % (b | 10)) print('a | 110 = %d' % (a | 110))
实例 53
题目
学习使用按位异或 ^
。
分析
按位异或时,相当于将其转换为二进制,然后按照如下规则进行异或运算即可;
1 ^ 1 = 0
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 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 : 练习实例53 if __name__ == '__main__': a = 20 b = 2 print('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 : 练习实例54 if __name__ == '__main__': num1 = int(input("输入:\n")) num2 = num1 >> 4 num3 = ~(~0 << 4) num4 = num2 & num3 print('%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 : 实例 55 if __name__ == '__main__': while True: num = int(input("输入一个整数\n")) print("按位取反后的结果:" + str(~num))