python中的位运算符计算

Python中的位运算符是按照二进制位对值进行操作的,因此在学习位运算之前,我们来看看二进制运算。

二进制运算:
整数转二进制:将正的十进制数除以二,得到的商再除以二,依次类推知道商为零或一时为止,然后在旁边标出各步的余数,最后倒着写出来,高位补零就OK 
 
负整数转换成二进制 :先是将对应的正整数转换成二进制后,对二进制取反,然后对结果再加一。还以42为例,负整数就是-42。
 
小数转换为二进制 :对小数点以后的数乘以2,有一个结果吧,取结果的整数部分(不是1就是0喽),然后再用小数部分再乘以2,再取结果的整数部分……以此类推,直到小数部分为0或者位数已经够了就OK了。然后把取的整数部分按先后次序排列就OK了,就构成了二进制小数部分的序列,举个例子吧,比如0.125 。
 

python中的位运算符:
 

1、与(&),按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
5&3 = 1   ---------- ------>    101  011   001   相同位仅为个位1 ,故结果为 1
2、或(|),按位或运算符:只要对应的两个二进位有一个为1时,结果位就为1
5|3 = 7   ---------- ------>    101  011    出现1的位是 1 1 1,故结果为 111
3、异或(^),按位异或运算符:当两对应的二进位相异时,结果为1
5^3 = 6    ---------- ------>    101  011 对位相加是 1 1 0,故结果为 110
4、取反(~),按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1
~5 = -6     ---------- ------>   ~x = -(x+1),-(101 + 1) = -110
~7 =    -(0111+1)=    -1000 =  -8
5、左位移(<<),运算数的各二进位全部左移若干位,由<<右边的数字指定了移动的位数,高位丢弃,低位补0
5<<2 = 20   ---------- ------>  101 向左移动2位得到 10100 ,即右面多出2位用0补  
6、右位移(>>),把‘>>’左边的运算数的各二进制位全部右移若干位,>>右边的数字指定了移动的位数
5>>2 = 1   ---------- ------>  101 向右移动2位得到 001 ,即左边用0补


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值