zoukankan      html  css  js  c++  java
  • 剑指offer 二进制中1的个数

    题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

    代码:

     1 class Solution {
     2 public:
     3      int  NumberOf1(int n) {
     4          int flag = 1; //设置 1 为标志位
     5          int count = 0;
     6          while ( flag != 0 ){ //由于int类型共32位故在flag左移出界时,跳出循环
     7              if( n & flag ) //& 按位与,即flag只有一位为 1 故 只有n对应位也为1时才可
     8                  count ++;
     9              flag = flag << 1; //左移一位
    10          }
    11          return count;
    12      }
    13 };

    我的笔记:使用 & 按位与符号并设置一个标志位 flag 与 n 进行 与 操作。

    注:负数在右移时是默认左侧补 1,而正数是补 0 。 

  • 相关阅读:
    makefile
    xcode
    centos
    debug
    服务器开发
    socket
    xcode
    调用cpp库更基本
    nodejs cpp动态库
    html5图片裁剪法--
  • 原文地址:https://www.cnblogs.com/john1015/p/12918871.html
Copyright © 2011-2022 走看看