首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
(判断题)对于整数 n,(n & (...
[单选题]
(判断题)对于整数 n,(n & (n-1) ) == 0 的含义是判断 n 是否为偶数。
正确
错误
查看正确选项
添加笔记
求解答(27)
邀请回答
收藏(661)
分享
18个回答
添加回答
51
陈效威
要判断奇偶数, 直接用二进制最后一位去比较就可以.
if
(n &
1
)
cout
<<
"奇数"
<< endl;
else
cout
<<
"偶数"
<< endl;
n & (n-1) 的作用是把n的最低位1设置为0;
XXX10000
->
XXX00000
所以这个表达式
(n & (n-1) ) == 0 可以用来判断n是否是0 或者2的整数倍.
编辑于 2019-04-10 19:51:37
回复(9)
20
影囚
n & (n-1) 是将n的二进制形式,最右端的1置0。 因此表达式 ( n & (n-1) ) == 0 的作用是判断,n 的二进制bit位中1的个数是否为1或0,也就是判断n是否为0或2的非负整数幂 。
发表于 2021-05-31 15:45:41
回复(0)
6
BABOONHu
这是判断 n 是否是
2 的整数次幂
假设 n 的二进制形式有 m
1
个 1
n - 1 的二进制形式有 m
2
个 1
容易知道 m
1
!= m
2
根据
按位与运算
的特性,如果(n & (n-1) ) == 0
则 n 的 m
1
个 1 与 (n-1)的 m
2
个 1 完全没有重叠!
这样的 n 应该满足什么性质呢?
如果 (n-1)可以写成十进制下的 2
m
- 1, 那么n就是 十进制下的2
m
这样的话,n 的二进制表示就与 n-1的二进制表示在1的位置这一方面完全没有重合!
可以想到,除了这种情况以外,其他的都不行
发表于 2022-09-15 00:38:11
回复(1)
6
Justliangzhu
这个&有0则0,-1操作正好各项转变01,为什么不能判断奇数偶数,真是奇了怪了.
发表于 2021-02-24 10:30:31
回复(5)
4
牛客751175898号
若是1&(1-1),结果是0,不能证明1是偶数
发表于 2022-04-01 14:31:20
回复(0)
4
牛客726934702号
这里的&是什么运算符啊 求指点
发表于 2020-12-24 19:59:09
回复(2)
3
牛客851945495号
按位与运算,例如:n=7,二进制为0111,(n-1)=6,二进制为0110。 则与运算为: 0111 & 0110 = 0110,可以看出是最后一位减一运算。故它的作用为一个作用是可以用来统计一个数1的个数,也可以用于判断一个数据是否为2的幂。判断1的个数while(n&(n-1))方式统计次数,判断是否为2的幂则直接判断n&(n-1)是否==0,等于0则是否则不是。因为2的幂二进制数只会包含一个1.
发表于 2020-10-27 18:10:41
回复(0)
2
MrLeiCCC
n & (n - 1) 会把 n的二进制表示里的最后一位1变成0,所以 n & (n - 1) == 0 的意思是,n 的二进制表示里是否只有1位是1
发表于 2021-08-15 13:08:43
回复(0)
1
Joker2720
2
的
非负整数
幂不一定是偶数(例如:1),偶数也不一定是2的非负整数幂(例如:-2、6)。
编辑于 2022-02-08 18:52:20
回复(0)
1
yf15273073192
这道题得仔细一点 除了特例“n=1”之外 这道题的说法就是正确的。
发表于 2020-09-02 15:51:03
回复(0)
0
分时日月周算数关罗父
6&(6-1)
发表于 2023-08-27 18:13:14
回复(0)
0
牛客615337819号
把数带进去算就行了
发表于 2022-07-28 13:09:23
回复(0)
0
理想汽车内推官
特例1
发表于 2021-10-12 08:29:17
回复(0)
0
不熟19
转载:
https://my.oschina.net/u/2822116/blog/790384
发表于 2021-03-29 22:03:26
回复(0)
0
牛客980459962号
特例0
发表于 2021-03-19 11:32:05
回复(0)
0
打死小怪兽
B
发表于 2021-03-10 09:38:28
回复(0)
0
牛客506299977号
<p>n取1就不成立,故选F</p>
发表于 2020-10-30 10:54:50
回复(0)
0
师傅呢
判断得出的是2的某次方或0
发表于 2019-04-10 21:43:10
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C++工程师
C语言
C++
2019
华为HUAWEI
来自:
2019华为网络精英挑...
上传者:
小小
难度:
18条回答
661收藏
5441浏览
热门推荐
相关试题
假定指针变量 p 定义为 “int...
360集团
C++
C语言
评论
(37)
来自
360公司2014校招笔试卷
(verbal)最近的研究显示,许...
言语理解与表达
2019
普华永道
人力资源
审计
税务服务
风险管理
管理咨询
行政管理
评论
(2)
来自
职能类模拟题14
(verbal)最近的研究显示,许...
言语理解与表达
2019
普华永道
人力资源
审计
税务服务
风险管理
管理咨询
行政管理
评论
(3)
来自
职能类模拟题14
(多选题)下面关于哈弗曼树的叙述中...
华为HUAWEI
C++工程师
2019
评论
(2)
来自
2019华为网络精英挑战...
BD的一般流程()
京东
产品
运营
2019
商务
商务拓展
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题