目录
(1)位运算
位运算是将数字看做二进制数来运算的,位运算分为按位与(&)、按位或(|)、按位异或(^)、按位取反(~)。还有移位运算(左移位<<、右移位>>)计算时需将数字转换为二进制每一位对齐进行排列。
运算规则
按位与则是两数都为1则为1,否则为0;
按位或两数都为0则为0,否则为1
按位异或:两数相同取0,两数不同取1
按位取反:0变成1,1变成0。注意二进制是有隐藏符号位的,因此按位取反数值的正负也会发生改变。
位运算:包括符号位位移,溢出则丢弃
计算步骤如下:
8 (D) : 1000(B)
10(D): 1010(B)
按位与:
1010
1000
结果: 1000(B)=8(D)
按位或:
1010
1000
结果: 1010(B)= 10(D)
按位异或:
1010
1000
结果: 0010(B)=2(D)
按位取反:
1010
结果: (0)0101 (B)= -9(D)
左移位,右移位
这里移动两位
001010 -> 101000 = 40
1010 -> 0010 = 2
python
x = 10
y = 8
print(x&y,'\n',x|y,'\n',x^y,'\n',~y,sep='')
print(x<<2,x>>2)
(2)运算的优先级
优先级从高往低为:
幂运算
取反、取正、取复
整除、除、乘、取余
加、减
移位
按位与
按位异或
按位或
比较运算
赋值运算