python中“与,或,异或”与c语言的不同

在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.

Posted in 未分类

发表评论