位逻辑与(&) 逻辑(|)
这个 和 and or之间的区别在于运算对象,and or 是整体直接运算,但是位逻辑与& 或|是将左右两个数字转换为二进制,然后每位按照规则(& 或者 |)进行运算。
左移位<< 右移位>>
譬如 4<<2
即为将数字4转换为2进制表示方式,然后整体向左移动两位,高位溢出丢失,低位不够补0 (相当于乘以2)
类推 4>>2
将数字4的二进制表示方式整体向右移动2位,低位截断,高位补0(相当于除以2)
运算顺序
算数运算→位运算→比较运算→布尔运算→赋值运算
# 练习者 :可乐
# 文件名字:Bit_Operation
# 练习时间:2021/10/10 --22:03
#重点:按位 &(与) |(或)
# 运算法则:将左右两边数字转换为二进制,然后进行同位与或非计算
#与(&)
print(4&8)
#0 0 0 0 0 1 0 0 数值4
#0 0 0 0 1 0 0 0 数值8
#0 0 0 0 0 0 0 0 按位与运算,都为1才为1,否则为0,得出数值为0#
print(4|8)
#0 0 0 0 0 1 0 0 数值4
#0 0 0 0 1 0 0 0 数值8
#0 0 0 0 1 1 0 0 按位或运算,有1就得出1,否则为0,得出数值为12#
#<< 左移位 高位溢出,低位补0#
print(4<<1)
# 0 0 0 0 0 1 0 0 数值4
# 0 0 0 0 1 0 0 0 数值8
# 将数值4二进制整体左移,高位第一位溢出丢失,低位补数字0
# 相当于乘以2
#>> 右移位 高位补0,低位截断
print(4>>1)
# 0 0 0 0 0 1 0 0 数值4
# 0 0 0 0 0 0 1 0 数值2
# 将数值 4的二进制整体右移1位,高位补0,低位截断
# 右移1位,相当于除以2,移动2位,相当于除以4
'''
运算顺序:算数运算→位运算→比较运算→布尔运算→赋值运算
①算术运算符:先幂,后乘除,最后加减
②位运算
③比较运算
④布尔运算
⑤赋值运算
'''