早教吧作业答案频道 -->数学-->
x&(x-1)?"yes":"no"这句表达式能判断x是否是一个2的幂么?要求用一句C表达式测试一个数是否为2的幂,应该怎么写?“若果都为1,则结果为1,否则为0.”额,那就是说如果运算得到101,那么结果就是0咯?
题目详情
x&(x-1)?"yes":"no" 这句表达式能判断x是否是一个2的幂么?
要求用一句C表达式测试一个数是否为2的幂,应该怎么写?
“若果都为1,则结果为1,否则为0.” 额,那就是说如果运算得到101,那么结果就是0咯?= =这么诡异的呀.
那这个能证明一下么 为啥x&(x-1)结果的0 1就能判断是否为2的幂呢?
要求用一句C表达式测试一个数是否为2的幂,应该怎么写?
“若果都为1,则结果为1,否则为0.” 额,那就是说如果运算得到101,那么结果就是0咯?= =这么诡异的呀.
那这个能证明一下么 为啥x&(x-1)结果的0 1就能判断是否为2的幂呢?
▼优质解答
答案和解析
你写的表达式想判断的话还差点就是把后边的yes和no交换位置
即:x&(x-1)?"no":"yes";
位运算这个其实并不难,你听我说几句:
首先来看几个数,这几个数不大,都是10以内的,我们看看它们对应的二进制数是啥
0——0
1——1
2——10
3——11
4——100
5——101
6——110
7——111
8——1000
9——1001
楼主可自己拿7,6,5 试下 肯定结果不是0 因为它们的“位数” 相同
最高位又都是1 所以肯定结果中会有1的存在,结果不可能是0,所以
x&(x-1)?"no":"yes"; 应该取得no
而4,2 它们运算后的结果和8一样,也是0.
综上,表达式x&(x-1)?"no":"yes"; 可以判断x是否是一个2的幂
即:x&(x-1)?"no":"yes";
位运算这个其实并不难,你听我说几句:
首先来看几个数,这几个数不大,都是10以内的,我们看看它们对应的二进制数是啥
0——0
1——1
2——10
3——11
4——100
5——101
6——110
7——111
8——1000
9——1001
楼主可自己拿7,6,5 试下 肯定结果不是0 因为它们的“位数” 相同
最高位又都是1 所以肯定结果中会有1的存在,结果不可能是0,所以
x&(x-1)?"no":"yes"; 应该取得no
而4,2 它们运算后的结果和8一样,也是0.
综上,表达式x&(x-1)?"no":"yes"; 可以判断x是否是一个2的幂
看了 x&(x-1)?"yes":...的网友还看了以下:
已知a+1/a=2,则a平方+1/a平方=()已知x/y=2,则x平方-1/xy减y平方-1/xy 2020-05-23 …
2.5的x次幂=100,0.25的y次幂=100,则x分之一-y分之一= 2020-06-02 …
初一一元一次方程,若|x-y|+(y+1)的2次幂=0则x+y=() 2020-06-03 …
25的x次幂=2000,80的y次幂=2000,则x分之一加y分之一=? 2020-07-16 …
幂级数的问题说e^x收敛半径为-∞到+∞后来又说当x趋向于0时e^x=1+x+(x^2)/2!+. 2020-07-29 …
幂的乘方如果9的x次幂等于3的x加3次幂,求x的值自己做要自己做若x的3次幂=8a的6次幂,b的9 2020-07-30 …
f(x)=lg(1+2的x次幂+4的x次幂乘a)/3,其中a∈R,如果x∈(-∞,1]时,f(x) 2020-07-30 …
1、填空题(1)-3.5的相反数是(),倒数是()(2)若|-a|=5,则a=()(3)若|x-y 2020-08-02 …
1.已知b<a<0<c,化简∶|A|-|B+A|+C-B|-|A-C|2.如果多项式(X的4次幂+ 2020-08-03 …
已知x=y+1,你能简捷地求出下式的结果吗(x+y)(x²+y²)(x的四次幂+y的四次幂)...( 2020-11-22 …