以下功能:
int numOnesInBinary(int number) {
int numOnes = 0;
while (number != 0) {
if ((number & 1) == 1) {
numOnes++;
}
number >>= 1;
}
return numOnes;
}
仅适用于正数,因为在负数的情况下,它总是在执行 >> 操作时将最左边的位加 1。在 Java 中我们可以使用 >>> 来代替,但是我们如何在 C++ 中做到这一点呢?我在一本书中读到我们可以在 C++ 中使用无符号整数,但我不明白为什么无符号整数不能表示负数。