黑马程序员技术交流社区

标题: 为什么说>>1相当于是除以2? [打印本页]

作者: gincoo    时间: 2015-6-13 18:16
标题: 为什么说>>1相当于是除以2?
为什么说 >>1 相当于是除以2?{:3_49:}
作者: 吐槽星人    时间: 2015-6-13 19:24
举例比如5的2进制数为101 ,101转换成10进制的过程是1*2^0+0*2^1+1*2^2,现在右移1位以为则变成了10,转化成10进制的过程就是0*2^0+1*2^1,之前的1*2^2变成了1*2^1,0*2^1变成了0*2^0,所以就相当于每项除以2,
同理右移2位就相对于除以4,3位就是8,右移n位就是除以2^n
作者: 水蛭31    时间: 2015-6-15 10:12
这个是位运算的写法,>>1,表示向右移一位,前面的空缺为就补0,首先需要把十进制转换成二进制, 这样理解起来就方便点
作者: 半月    时间: 2015-6-15 10:49
十进制去掉一位是/10

位移是按二进制来计算的
>>是去掉一位,就是/2
<<是增加一位,计算*2
作者: zlpiano    时间: 2015-6-15 11:47
>> 1 表示二进制数右移一位,即去掉末尾的0或1,与除以2是一样的效果,同理 >> 2 是右移2位 ,>>>2 是无符号右移2位,左边补充0
作者: AIE    时间: 2015-6-15 14:14
你想想看在十进制的情况下,比如100,右边少了一个0,这不就是除以10了吗?这与二进制同理




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2