用i和二进制数1进行 & 与 运算,1为奇数,0为偶数
i = 99
if i&0b1:
print("奇数")
else:
print("偶数")
output: 奇数
三次异或运算可以把两个元素直接交换而不利用第三个元素。
a = 5
b = 6
a = a^b
b = a^b
a = a^b
print(a,b)
output: 6 5
不使用判断语句求绝对值
i = -5
s = i>>31
print((i^s)-s)
output:5
原理:
i»31得到符号位,可能的结果的0和-1
i^s: 与0异或仍然是本身,与-1(0*ffffffff)异或是取反,包括符号位。
再减去 i:减0相当于没减,减-1相当于加1,取反加1相当于取相反数。
这样就实现了求绝对值。