《Python 3.x入门到应用实践》 — 3.6 位位移运算符

举报
华章计算机 发表于 2020/02/08 23:30:22 2020/02/08
【摘要】 本节书摘来自华章计算机《Python 3.x入门到应用实践》 一书中第3章,第3.6节,作者是赵 军 等。

 3.6  位位移运算符

位位移运算符将整数值的二进制各个位向左或向右移动指定的位数。Python语言提供了两种位位移运算符,如表3-9所示。

表3-9

image.png

 

1. <<(左移运算符)

左移运算符(<<)可将操作数向左移动n位,左移后超出存储范围的位舍去,右边空出的位则补0。语法格式如下:

a<<n

例如,表达式“12<<2”,数值12的二进制值为0000 1100,向左移动2位后成为0011 0000,也就是十进制的48,如图3-11所示。

 

 image.png

 

图3-11

2. >>(右移运算符)

右移运算符(>>)与左移运算符相反,可将操作数内容右移n位,右移后超出存储范围的位舍去。留意这时右边空出的位,如果这个数值是正数,就补0,负数则补1。语法格式如下:

a>>n

例如,表达式“12>>2”,数值12的二进制值为0000 1100,向右移动2位后成为0000 0011,也就是十进制的3,如图3-12所示。

 

 image.png

 

图3-12

下面的范例程序将实现本节上述图解的运算过程,在程序中声明a=12,让a和38进行4种位逻辑运算并输出运算的结果,最后对a分别进行左移与右移两位的位位移运算并输出结果。

 【范例程序:bit_shift.py】 位运算符的综合运用

01  # -*- coding: utf-8 -*-

02  """

03  位运算符的综合应用

04  """

05 

06  a=12

07  print("%d&38=%d" %(a,a&38)) #AND运算

08  print("%d|38=%d" %(a,a|38)) #OR运算

09  print("%d^38=%d" %(a,a^38)) #XOR运算

10  print("~%d=%d"%(a,~a))       #NOT运算

11  print("%d<<2=%d" %(a,a<<2)) #左移运算

12  print("%d>>2=%d" %(a,a>>2)) #右移运算

程序的执行结果如图3-13所示。

 image.png

图3-13


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。