《Python 3.x入门到应用实践》 — 3.6 位位移运算符
3.6 位位移运算符
位位移运算符将整数值的二进制各个位向左或向右移动指定的位数。Python语言提供了两种位位移运算符,如表3-9所示。
表3-9
1. <<(左移运算符)
左移运算符(<<)可将操作数向左移动n位,左移后超出存储范围的位舍去,右边空出的位则补0。语法格式如下:
a<<n
例如,表达式“12<<2”,数值12的二进制值为0000 1100,向左移动2位后成为0011 0000,也就是十进制的48,如图3-11所示。
图3-11
2. >>(右移运算符)
右移运算符(>>)与左移运算符相反,可将操作数内容右移n位,右移后超出存储范围的位舍去。留意这时右边空出的位,如果这个数值是正数,就补0,负数则补1。语法格式如下:
a>>n
例如,表达式“12>>2”,数值12的二进制值为0000 1100,向右移动2位后成为0000 0011,也就是十进制的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
- 点赞
- 收藏
- 关注作者
评论(0)