首页 > 试题广场 >

(71)&15运算后的结果是()

[单选题]
(7<<1)&15运算后的结果是()
  • 15
  • 14
  • 8
  • 7
推荐
答案选择B的过程
首先计算7<<1
7的二进制位0111
7<<1
值为1110
然后就15的二进制了
1111
再然后按位与的计算
(二进制中对应位置如果都是1则当前位返回1,否则返回0)
1110
&
1111
结果就出来了
1110
明显答案中没有二进制。。
再转回10进制14。。
编辑于 2016-01-12 13:51:05 回复(1)
7<<1表示左移动,7为111向左移动一位为1110,与15(1111)做与运算,结果为1110,换成10进制数为14,所以选14
发表于 2017-04-07 09:08:28 回复(0)
炫头像
7的二进制为111,执行7<<1就变成了1110,15的二进制为1111,两者进行按位与运算得1110,转换成10进制就是14
发表于 2016-01-12 13:16:59 回复(0)
<< 和 >> 补位都是0
0111 << 1110
1110&1111=1110 ->14
发表于 2015-10-07 21:24:59 回复(2)
简而言之,左移几位就是乘以2的几次方,右移几位就是除以2的几次方,至于两个数的&运算,取较小的那个数就对了,因为&运算两个数的该位都为1结果才是1,对于两个相邻的数来说,那肯定是大的数有1的位小的数不一定有,而小的数有1的位大的数肯定也为1。
所以这一题就是:7乘以2的一次方,等于14,14和15比较,取小的数14
编辑于 2020-02-16 18:04:06 回复(0)
7<<1为7*2^1=14, 14&15运算结果为14.
发表于 2015-09-17 00:25:18 回复(0)
7的二进制位0111,<<为移位操作,左移一位后为1110,15的二进制位1111,两者进行按位与操作得到1110 = 14
发表于 2015-09-16 16:46:47 回复(1)
先计算括号内,7左移1位则表示×2,为14。14和15进行与运算
发表于 2020-06-19 23:27:29 回复(0)
7为00000111,15为00011111
7<<1为00001110
(7<<1) & 00010111 = 00001110 & 00011111 = 00001110 = 14
这其实也是HashMap计算桶位置的原理
发表于 2020-09-10 21:59:32 回复(0)
B
发表于 2018-09-14 17:24:54 回复(0)