首页 > 试题广场 >

以下哪些语句可以判断整数n为2的幂?(2的幂:22、...

[不定项选择题]
以下哪些语句可以判断整数n为2的幂?(2的幂:22、23 … 2m)()
  • n&(n-1) == 0
  • n == (n&-n)
  • n/2 == n%2
  • (n/2)%2 == 0

参考上一位 @赵大元 的思路
2是正整数,其原码和反码都是0000 0010
-2的原码为1000 0010,补码为 1111 1110
那么2和-2的补码做&操作之后,得到0000 0010,得到2的反码/原码,可以判断2为2的整数幂
即  2 = 2 & -2
发表于 2020-04-05 14:53:32 回复(0)
2的幂次的话,其二进制中只有一个1,计算机中一个数的负数以补码表示,例如2的原码  00000010  反码 11111101 补码 11111110 ,可以看出,如果原码的中只有一个1,其补码的相应位置也为1,而其他位置全部是反的,n&-n后,如果原码只有一个1,则n=n&-n
发表于 2020-04-02 22:53:41 回复(0)

热门推荐