编程之美 2.1 求二进制中的1的个数

来源:互联网 发布:php http get请求 编辑:程序博客网 时间:2024/05/01 00:10
/* 2.1 求二进制中的1的个数 *//* 整数除法算法 */int Count(unsigned char v){int num = 0;while (v){if (v % 2 != 0){num++;}v /= 2;}return num;}/* 使用位操作 */int count(unsigned char v){int num = 0;while (v){num += v & 0x01;v >>= 1;}return num;}/* 直接判断二进制中1的个数 */int count(unsigned char v){int num = 0;while (v){v &= (v - 1);num++;}return num;}/* 空间换时间算法:使用分支操作;查表发 *//* 扩展问题2 整数A和B的二进制表示位有多少位不同 */int count_AB(int A, int B){return count(~A & B) + count(A & ~B);}/* 异或 */int count_AB(int A, int B){return count(A^B);}


原创粉丝点击