实例 51

题目

学习使用按位与 & 。

分析

按位与时,相当于将其转换为二进制,然后按照如下规则进行与运算即可;

  • 1 & 1 = 1
  • 0 & 0 = 0
  • 0 & 1 = 0
  • 1 & 0 = 0

代码

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @version : 1.0
  4. # @Time : 2021/4/10 21:06
  5. # @Author : cunyu
  6. # @Email : 747731461@qq.com
  7. # @Site : https://cunyu1943.site
  8. # 公众号 : 村雨遥
  9. # @File : 51.py
  10. # @Software: PyCharm
  11. # @Desc : 练习实例51
  12. if __name__ == '__main__':
  13. a = 100
  14. b = 23
  15. print('a & b = %d' % (a & b))
  16. print('b & 10 = %d' % (b & 10))
  17. print('a & 110 = %d' % (a & 110))

结果

Python3 编程实例(51 - 55) - 图1

实例 52

题目

学习使用按位或 |

分析

按位或时,相当于将其转换为二进制,然后按照如下规则进行或运算即可;

  • 1 | 1 = 1
  • 0 | 0 = 0
  • 0 | 1 = 1
  • 1 | 0 = 1

代码

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @version : 1.0
  4. # @Time : 2021/4/10 21:09
  5. # @Author : cunyu
  6. # @Email : 747731461@qq.com
  7. # @Site : https://cunyu1943.site
  8. # 公众号 : 村雨遥
  9. # @File : 52.py
  10. # @Software: PyCharm
  11. # @Desc : 实例 52
  12. if __name__ == '__main__':
  13. a = 20
  14. b = 2
  15. print('a | b = %d' % (a | b))
  16. print('b | 10 = %d' % (b | 10))
  17. print('a | 110 = %d' % (a | 110))

结果

Python3 编程实例(51 - 55) - 图2

实例 53

题目

学习使用按位异或 ^

分析

按位异或时,相当于将其转换为二进制,然后按照如下规则进行异或运算即可;

  • 1 ^ 1 = 0
  • 0 ^ 0 = 0
  • 0 ^ 1 = 1
  • 1 ^ 0 = 1

代码

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @version : 1.0
  4. # @Time : 2021/4/10 21:23
  5. # @Author : cunyu
  6. # @Email : 747731461@qq.com
  7. # @Site : https://cunyu1943.site
  8. # 公众号 : 村雨遥
  9. # @File : 53.py
  10. # @Software: PyCharm
  11. # @Desc : 练习实例53
  12. if __name__ == '__main__':
  13. a = 20
  14. b = 2
  15. print('a ^ b = %d' % (a ^ b))
  16. print('b ^ 10 = %d' % (b ^ 10))
  17. print('a ^ 110 = %d' % (a ^ 110))

结果

Python3 编程实例(51 - 55) - 图3

实例 54

题目

取一个整数 a 从右端开始的 4 〜 7 位。

分析

  1. 先将 a 向右移动 4 位;
  2. 设置一个低 4 位全为 1,其余全为 0 的数;
  3. 然后将上面的两个数进行 & 运算即可;

代码

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @version : 1.0
  4. # @Time : 2021/4/10 21:25
  5. # @Author : cunyu
  6. # @Email : 747731461@qq.com
  7. # @Site : https://cunyu1943.site
  8. # 公众号 : 村雨遥
  9. # @File : 54.py
  10. # @Software: PyCharm
  11. # @Desc : 练习实例54
  12. if __name__ == '__main__':
  13. num1 = int(input("输入:\n"))
  14. num2 = num1 >> 4
  15. num3 = ~(~0 << 4)
  16. num4 = num2 & num3
  17. print('%o\t%o' % (num1, num4))

结果

Python3 编程实例(51 - 55) - 图4

实例 55

题目

学习使用按位取反 ~

分析

按位取反,就是将其转换为二进制后,按照如下规则进行转换:

  • 按位取反:二进制每一位取反,0 变为 1,1 变为 0;
  • 最高位为符号位,整数符号位为 0,负数符号位为 1;

代码

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # @version : 1.0
  4. # @Time : 2021/6/18 14:45
  5. # @Author : cunyu
  6. # @Email : 747731461@qq.com
  7. # @Site : https://cunyu1943.site
  8. # 公众号 : 村雨遥
  9. # @File : 55.py
  10. # @Software: PyCharm
  11. # @Desc : 实例 55
  12. if __name__ == '__main__':
  13. while True:
  14. num = int(input("输入一个整数\n"))
  15. print("按位取反后的结果:" + str(~num))

结果

Python3 编程实例(51 - 55) - 图5