15. 二进制中1的个数

image.png

补充:

  • Java的位运算符:

    • 位逻辑运算符:
      与 &,或 |,非 ~,抑或 ^
      其中抑或的含义:如果对应的二进制位相同(同时为 0 或同时为 1)时,结果为 0;如果对应的二进制位不相同,结果则为 1。
    • 位移运算符
      1、左移<<,低位补零
      2、带符号右移>>,高位补符号
      image.png
      3、无符号右移>>>,高位补零
      image.png
引用:
Java语言位运算符详解
Java位运算符:Java移位运算符、复合位赋值运算符及位逻辑运算符

思路:

输入为二进制数,应该使用位运算。而不是把它看成一个很大的十进制数(我的IDEA把它看成了一个十进制...)
1、n&1,等于1 就res+1
2、n向右移1位

操作:

image.png
官方:
1、循环:while(n!=0) 更快
2、res = res + n&1;
image.png


MeeWoW
18 声望1 粉丝

加油