1、字节变量中1的个数
对于一个字节(8bit)的变量,求其二进制表示中“1”的个数。
输入:10100001
输出:3
可参考,https://blog.youkuaiyun.com/m0_37925202/article/details/80087992,给出了四种解法。
推荐下面的写法:
int Count(unsigned char byt)
{
int num=0;
while (byt)
{
byt = byt & (byt-1);
num++;
}
return num;
}
把一个整数减去1,再和原来的数做与运算,将把该整数最右边的1变成0。二进制中有多少个1,将会进行多少次这样的操作。
2、求一维数组的最长递增子序列
输入:1 -1 2 -3 4 -5 6 -7
输出:1 2 4 6