购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.6 位位移运算符

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

表3-9

1.<<(左移运算符)

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


a<<n

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

图3-11

2.>>(右移运算符)

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


a>>n

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

图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所示。

图3-13 SYH/tZhKJ9IGLjxutahscEhTjWEGw5w8uEO6JLqYXijaSJrnMoN64iw/SrWMHMK1

点击中间区域
呼出菜单
上一章
目录
下一章
×