内容正文:
08 Python运算符下
一、位运算符:
按位与:& 运算规则:同1为一,其余为0
按位或:| 运算规则:同0为0,有1为1
按位异或:^ 运算规则:相同为0,不同为1
按位取反:~ 运算规则:相同为0,不同为1
左移:<<
符号左边是要进行左移运算的数,右边表示要移动的位数。运算规则:高位丢弃,低位补0。
右移:>>
符号左边是要进行左移运算的数,右边表示要移动的位数。
运算规则:正数左补0,负数左补1.
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
位运算符是用于在二进制数字上执行逻辑操作的操作符。下面是位运算符的解释和示例:
1. 按位与(&):将两个二进制数字对应位进行与操作,当两个数对应位均为1时,结果位为1,否则为0。
示例:5 & 3 = 1
解释:5的二进制表示是101,3的二进制表示是011,将它们进行按位与操作得到001,转换成十进制就是1。
2. 按位或(|):将两个二进制数字对应位进行或操作,当两个数对应位均为0时,结果位为0,否则为1。
示例:5 | 3 = 7
解释:5的二进制表示是101,3的二进制表示是011,将它们进行按位或操作得到111,转换成十进制就是7。
3. 按位异或(^):将两个二进制数字对应位进行异或操作,当两个数对应位相同时,结果位为0,不同时为1。
示例:5 ^ 3 = 6
解释:5的二进制表示是101,3的二进制表示是011,将它们进行按位异或操作得到110,转换成十进制就是6。
4. 按位取反(~):将一个二进制数字的每一位取反,变成它的相反数(取反后加1)。
示例:~5 = -6
解释:5的二进制表示是101,将它进行按位取反操作得到010,再加上1得到011,转换成十进制就是-6。
5. 左移(<<):将一个二进制数字向左移动指定的位数,右侧补0,移动后得到的数字为原数字乘以2的移动位数次方。
示例:5 << 2 = 20
解释:5的二进制表示是101,将它进行左移两位操作得到10100,转换成十进制就是20。
6. 右移(>>):将一个二进制数字向右移动指定的位数,左侧补0或者1(取决于数字的最高位),移动后得到的数字为原数字除以2的移动位数次方。
示例:5 >> 1 = 2
解释:5的二进制表示是101,将它进行右移一位操作得到10,转换成十进制就是2。
二、成员运算符
判断是否为成员:in
判断是否不是成员:not in
name = 'John'
print('o' in name) # 输出:True,因为字母'o'存在于name字符串中
sentence = 'This is a sentence.'
print('is' not in sentence) # 输出:False,因为'is'存在于sentence字符串中
三、身份运算符
判断两个对象是否引用同一个内存地址:is
判断两个对象是否不引用同一个内存地址:is not
判断两个对象是否不引用同一个内存地址(is not):
a = 'Hello'
b = 'Hello'
c = 'World'
print(a is not b) # 输出:False,因为a和b引用同一个字符串对象
print(a is not c) # 输出:True,因为a和c引
四、运算优先级
$$