/**
* 本来想着java自带的有方法,尝试了下,并不能实现
* 只能自己想法了
* 既然是 1 的个数,那就要从二进制运算符入手
* 首先判断最后一位是1、0
* 然后将数据右移一位
* 以此循环
* 值得一提的是 >>> 无符号右移 >> 有符号右移
*/
private static int NumberOf1(int n) {
int result = 0;
for (int i = 0; i < 32; i++) {
result += n & 1;
n = n >>> 1;
}
return result;
}