早教吧 育儿知识 作业答案 考试题库 百科 知识分享

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的幂呢?
▼优质解答
答案和解析
你写的表达式想判断的话还差点就是把后边的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)?"yes":...的网友还看了以下:

已知某型号雷达测速仪最远测速距离为Xm=800m,发射的电磁波长λ=1m,真空中的光速c=3.0×  2020-04-25 …

有关渠道纵断面测量的说法不正确的是()A.为了提高测量精度,应首先沿着渠道,每隔1~2km 测设一个  2020-05-28 …

某班人数在70-80之间,在体育达标测试中,测得优秀占1/4,测得良好占1/3,合格占1/6  2020-06-07 …

简单通断测试笔,类似万用表带声音的通断测试.万用表我基本只用一个功能,打到带声音的通断测试档.短路  2020-06-28 …

空气中氧气含量测定再认识.你知道吗通过实验(图1)测定了空气组成的科学家是.A.门捷列夫B.达尔文  2020-07-22 …

在“用单摆测定重力加速度”的实验中,测得单摆摆角小于5°时,完成n次全振动时间为t,用毫米刻度尺测  2020-07-31 …

在用单摆测重力加速度的实验中,当单摆摆角小于10°时,测得完成n次全振动的时间为t,用毫米刻度尺测  2020-07-31 …

1被测物体的质量不能超出天平的量程.2判断天平横梁是否平衡时,一定要等指针完全静止下来这两句话1被测  2020-11-27 …

小明用电能表(技术参数如图所示)和手表测量一电热水壶工作时的电功率.(1)测量原理是.(用记录的字母  2020-11-29 …

世界最高峰珠穆朗玛峰的高度经我国有关专家测量改为8848.13m,通过公布的这一数据,可以判断测量的  2020-12-20 …