/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return int整型 */ //8位二进制,负数用补码表示-128~127,-128表示-0 //思路: //位运算 //一个固定的,0x0001去与n相与&,如果n最右边是1,那么得到1,统计1的个数的变量自动加1,然后n往右移位(无符号右移>>>),前面补零 int NumberOf1(int n ) { // write code here int flag = 0x0001; //0X表示十六进制 int num = 0; //num统计1的个数 for(int i=0; i<32; i++) { num += n & flag; n = n >> 1; } return num; }