上面结果为什么是4啊?mask<<=1是啥意思啊?求详细解答
2条回答 默认 最新
- threenewbee 2023-06-23 10:17关注
mask <<= 1就是 mask = mask << 1
也就是 mask = mask * 2
<<二进制是向左移一位
mask一开始是1,只有x的最低位是1,x & 1 = 1(两者都是1,返回1,否则0)
然后 mask 依次变成了 2 4 8 ... 也就是2进制的 10 100 1000 ... 和上面同理,依次测试 x 是否倒数第二位,第三位,……是1
这段代码的意思是输入一个数字,输出它有几个1
23的二进制是 10111,所以有4个1,输出4本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 如何能达到用ping0.cc检测成这样?如图
- ¥15 关于#DMA固件#的问题,请各位专家解答!
- ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
- ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
- ¥20 微信小程序 canvas 问题
- ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
- ¥15 怎么把512还原为520格式
- ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
- ¥15 求高通平台Softsim调试经验
- ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?