GRIT️‍ 2023-06-23 10:05 采纳率: 80.6%
浏览 13
已结题

问题:C语言的循环相关问题

img


上面结果为什么是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条)

报告相同问题?

问题事件

  • 系统已结题 7月1日
  • 已采纳回答 6月23日
  • 创建了问题 6月23日

悬赏问题

  • ¥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多张表(月表)采集入库到目标表中(一张表)?