位运算

来源:互联网 发布:linux gpio中断 编辑:程序博客网 时间:2024/06/09 15:30

一,二进制中1的个数

题目描述

求一个整数的二进制表示中,1的个数。


我的代码

/***  结论:把一个整数减去1,再与原来的数做与运算,会把*  该数最右边一个1变成0/。那么一个整数的二进制表示中*  有多少个1,就可以进行多少次这样的操作。*/int NumberOf1(int n){    int count = 0;    while(n){        n = n & (n - 1);        count ++;    }    return count;}