位运算(2)——Number of 1 Bits
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also known as the Hamming weight).
For example, the 32-bit integer ’11' has binary representation
00000000000000000000000000001011
, so the function should return 3.
输入:32位整数
输出:二进制中1的个数
1 public class Solution { 2 // you need to treat n as an unsigned value 3 public int hammingWeight(int n) { 4 int res = 0; 5 while(n != 0) { 6 /*if((n & 1) == 1) { //超时 7 res++; 8 n >>= 1; 9 } else { 10 n >>= 1; 11 }*/ 12 n &= (n-1); //消掉n最右边的1 13 res++; 14 } 15 return res; 16 } 17 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步