知识总结
面试题
输入一个整数,输出该数二进制表示中 1 的个数。其中负数用补码表示。
一个不为 0 的整数的二进制表示,一定会有一位为 1。我们找到最右边的一位 1,当我们将整数减去 1 时,最右边的一位 1 变为 0,它后面的所有位都取反,因此将减一后的值与原值相与,我们就会能够消除最右边的一位 1。因此判断一个二进制中 1 的个数,我们可以判断这个数可以经历多少次这样的过程。
如:1100&1011=1000