面试题:二进制中1的个数
题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2。
思路1:举个例子进行说明。对于任何一个数字,和1进行与运算,判断得到的结果。设置一个count进行技术,如果结果与运算得到的结果为1,那么count就加1,每计算此意,1就向向左移动一位,直到完成所有的计算,最后得到的count值就是输出。
| 1 | 0 | 0 | 1 | count |
|---|---|---|---|---|
| 1 | 1 | |||
| 1 | ||||
| 1 | 1 | |||
| 1 | 2 |
|
|
思路2:举个例子进行说明。对于任何一个数字n,和n-1进行与运算。
|
|
|
|