zoukankan      html  css  js  c++  java
  • 二进制中的个数(JAVA)

    二进制中的1的个数
      

      题目描述

      输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
        
        思路:用位运算来进行移1操作。(首先得知道数在计算机中都是以01来放置的)
          1,若由一个数11100,当其减1为11011,即减1后会将该数最右边的1变为0,且后续的所有数取反。
          2,将两数相与,则为11000,此时最右边的1变为0了,且其他数不变。此时1个数加1。
          3,重复1,2操作,直至该数变为0,此时得到该数所有1的个数。
          
          代码很简单,如下。
          
    1     public int NumberOf1(int n) {
    2         int count = 0;
    3         while(n!=0){
    4             count++;
    5             n = n&(n-1);
    6         }
    7         return count;
    8     }
     
  • 相关阅读:
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
    Linux 小知识翻译
  • 原文地址:https://www.cnblogs.com/ztqup666/p/9237913.html
Copyright © 2011-2022 走看看