每天一题:初级华为题库——计算二进制数的0的个数

  今日(2014-04-10)开始做华为题库。逐渐纠正自己的一些小问题吧~~

  <题目要求>

    要求输入一个十进制的数,输出该数的二进制表示中所含的0个数。

  思路:通过位运算,可逐位考虑十进制的二进制位,无需先将十进制数转换二进制。

  易错点分析:(1)头文件、空间std、main函数格式、返回值;(2)相与的结果是位的结果。

  实现具体代码如下:

#include <iostream>

using namespace std;

int main()
{
        int k;
  cout<<"Please Enter The Number:"<<endl;
  cin>>k;
      int i=0;
  while(k!=0)
  {

      if(!(k&1))
      {
          i++;
      }
       k=k>>1;
  }
  cout<<"The Number is:"<<i;
    return 0;
}

posted on 2014-04-10 11:19  Sophie@原本  阅读(263)  评论(0编辑  收藏  举报