在python中:
按位的运算,都按位的运算,都是把参加运算的数的二进制形式进行运算。
1.与运算:a与b值均为1时,a、b与的运算结果才为1,否则为0 (运算符:&)
2.或运算:a或b值为1时,a、b或的运算结果才为1,否则为0 (运算符:|)
3.异或运算:a与b不同为1时,a、b的预算结果才为1,否则为0 (运算符:^)
4.按位翻转(按位取反):将内存中表示数字的2进制数取反0取1,1取0 (运算符:~)
运算方式:
1.与运算:5&3计算过程为 0101(2)&0011(2)=0001(2)=1
注释:意思是把两个数全部转换为二进制进行比较,如上例:5的二进制为0101,3的二进制为0011.则这两个数的二进制数种第一位相同,取一,其余全部取零。得0001,再转换为十进制结果为 1
为方便理解再举个例子,《python核心编程》中表5-4中的例子:>>>30&45 结果为12
即30=(011110), 45=(101101)位运算得12(1100)
其余三种位运算与此相同
2.或运算:5|3计算过程为 0101(2)|0011(2)=0111(2)=7
3.异或运算:5^3计算过程为 0101(2)^0011(2)=0110(2)=6
4.按位翻转(按位取反):5=0101(2) 计算过程~5=1010(2) 例如:x的按位运算为-(x+1)
其他位的运算:()
1.