设int b=2;表达式(b>>2)/(b>>1)的值是什么?能解释一下运算的原理吗?
先看>>2是二进制右移两位,即除以4。同理>>1是右移1位,即除以2.
因为这里是整数类型的,除法运算默认是向下取整,所以b>>2=b/4=0,b>>1=b / 2=1,所以(b>>2) / (b>>1)=0 / 1的值是0.
其实考察的就是位运算的知识,位运算 结合二进制理解 会更好些。
希望对题主有所帮助,望采纳!!
=2; // b= 0010B 二进制
(b>>2) // 1移出去了 结果为0
(b>>1) // 移0出去了 结果为0001B 结果为1
0/1当然等于0了
b>>a
将b右移a位,等价于b除以2的a次幂
那么很显然,a=0是无意义的操作,不移位或者除以1
a=1就是除以2
a=2就是除以4