A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gincoo 中级黑马   /  2015-6-13 18:16  /  5107 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么说 >>1 相当于是除以2?{:3_49:}

6 个回复

倒序浏览
举例比如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

点评

谢谢你,容我想想 。。  发表于 2015-6-14 23:55
回复 使用道具 举报 1 0
这个是位运算的写法,>>1,表示向右移一位,前面的空缺为就补0,首先需要把十进制转换成二进制, 这样理解起来就方便点
回复 使用道具 举报
十进制去掉一位是/10

位移是按二进制来计算的
>>是去掉一位,就是/2
<<是增加一位,计算*2
回复 使用道具 举报
>> 1 表示二进制数右移一位,即去掉末尾的0或1,与除以2是一样的效果,同理 >> 2 是右移2位 ,>>>2 是无符号右移2位,左边补充0
回复 使用道具 举报
你想想看在十进制的情况下,比如100,右边少了一个0,这不就是除以10了吗?这与二进制同理
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马