输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
解题思路:用1和n做与运算,然后将1左移继续进行与运算,循环。
另一种做法是,把原来的数最右边的一个1变为0,再与原数进行与操作,就能得到这个位置左边保持不变,右边(包括它自己)变为0。这种解法更好一点。
第一种:
1 2 3 4 5 6 7 8 9 10 11 |
|
第二种:
1 2 3 4 5 6 7 8 9 10 11 |
|
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
解题思路:用1和n做与运算,然后将1左移继续进行与运算,循环。
另一种做法是,把原来的数最右边的一个1变为0,再与原数进行与操作,就能得到这个位置左边保持不变,右边(包括它自己)变为0。这种解法更好一点。
第一种:
1 2 3 4 5 6 7 8 9 10 11 |
|
第二种:
1 2 3 4 5 6 7 8 9 10 11 |
|