二进制中1的个数 发表于 2020-03-07 分类于 剑指Offer 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 分析 原码:将一个整数,转换成二进制,这个二进制就是其原码 反码:正数的反码就是其原码;负数的反码是其原码除符号位外,每位取反 补码:正数的补码就是其原码;负数的的补码是其反码加1 二进制中1的个数-讨论 主要方法为与运算,将n看作二进制数,那么其中的1个数就是与1,10,100,1000…相与后的结果。 代码1234567891011121314public class Solution { public int NumberOf1(int n) { int test = 1; int c = 0; while( test != 0 ){ if( ( n & test ) != 0 ){ c++; } test = test<<1; } return c; }} 本文作者: h31i 本文链接: https://h31i.github.io/2020/03/07/二进制中1的个数/ 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!