python位运算

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下,只针对整型数据:
a=60的二进制是:0011 1100
b=13的二进制是:0000 1101
a和b进行二进制按位算法:

    0011 1100
    0000 1101
------------------
    0000 1100    ---->a&b(a,b按位与运算结果)
    0011 1101    ---->a|b(a,b按位或运算结果)
    0011 0001    ---->a^b(a,b按位异或运算结果)  即a和b相反结果才是1,相同则为0
    
    
取反:    a=60,0011 1100 按位取反:结果为 1100 0011

移位:
 a=60,0011 1100
 a<<3 左移动3位 则是向二进制右边加3个0 ,结果是:11 1100 000,值为480,等效于 x *  2**y
 
 a>>3 右移动3位 则是将二进制位全部向右移动3位 ,结果是:1 1100,值为28,将a的各二进位全部向 右移动3位,相当于将a的二进制位前3位切除 。等效于x / 2**y  (取整)

 

posted @ 2019-04-30 15:52  XuMou  阅读(1716)  评论(0编辑  收藏  举报