Python合集之Python运算符(三)
在上一节的合集中,我们了解了Python运算符中的比较运算符和逻辑运算符的相关知识,本节我们将进一步了解一下Python运算符中的位运算符的相关知识。
位运算符是把数字看作二进制数来进行计算的,因此,需要先将要执行运算的数据转换为二进制,然后才能执行运算。Python中位运算符有与(&)、或(|)、异或(^)、取反(~)、左移位(<<)、右移位(>>)。
注:整形数据在内存中以二进制的形式表示,如 7的32位二进制表示为:00000000 00000000 00000000 00000111,其中,左边最高位是符号位,最高位为0表示正整数,若为1则表示负数,负数采用的是补码表示,如 -7的32位二进制形式为:11111111 1111111 11111111 11111001
1.与运算
与 运算的运算符为 & ,运算法则为:两个操作数据的二进制表示,只有对应数位都是1时,结果数才为1,否则为0.如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。
0000 0000 0000 1100
& 0000 0000 0000 1000
————————————
0000 0000 0000 1000
2.或运算
或运算的运算符为 | ,运算符的运算法则为:两个操作数据的二进制表示,只有对应数位都是0,结果才是0,否则为1.如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。
0000 0000 0000 0100
| 0000 0000 0000 1000
——————————
0000 0000 0000 1100
3.异或运算
异或运算的运算符为 ^ 运算符的运算法则为:两个操作数据的二进制表示相同(同时为1或者0)时,结果为0,否则为1。若两个操作数的精度不同,则结果的精度与精度高的操作数相同。
0000 0000 0001 1111
^ 0000 0000 0001 0110
_____________________
0000 0000 0000 1001
4.取反运算
取反运算也称为非运算,运算符为~,取反运算就是将操作数中对应的二进制数1修改为0,0修改为1.
~ 0000 0000 0111 1011
———————————
1111 1111 1000 0100
5.左移运算
左移位运算符 << 是将一个二进制操作数向左移动制定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充,左移位运算相关与乘以2的n次幂。
例如:int类型的数据48,对应的二进制数:0011 0000,将其左移一位,根据左移运算的运算规则可以得出(0011 0000 <<1)=0110 0000,所以转换为十进制就是96,将其左移两位,根据运算规则可以得出(0011 0000<<2)=1100 0000 ,转换为十进制就是192.
6.右移运算
右移位运算符>>是将一个二进制操作数向右移动指定的位数,右边(地位段)溢出的位被丢弃,左边(高为段)的空位,如果最高位为0(正数)左侧填入0,如果最高位为1,左侧填入1.右移位相当于除以2的n次幂。
花絮:
本期的Python的运算符就分享到这里,下期我们将继续分享Python中的运算符中的运算符的优先级,感兴趣的朋友可以关注我。
同时也可以关注下我的个人 微信订阅号,园子里面的文章也会第一时间在订阅号里面进行推送跟更新。