求最大连续bit数

来源:互联网 发布:梯度下降算法迭代 编辑:程序博客网 时间:2024/05/22 06:14

题目

描述

功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
输入: 一个byte型的数字
输出: 无
返回: 对应的二进制数字中1的最大连续数

输入

输入一个byte数字

输出

输出转成二进制之后连续1的个数

样例输入

3

样例输出

2

思路

  1. 右移
  2. 找连续的
  3. 判断是否为最长

代码

#include <iostream>using namespace std;int main(){    int num,counter=0,maxNum=0;    cin>>num;    if(num < 0 || num > 255)    {        return -1;    }    while(num!=0)    {        if(num%2==1)//最后一位        {            counter++;//计数            if(counter>maxNum)//找最大            {                maxNum=counter;            }        }        else        {            counter=0;        }        num=num>>1;//右移    }    cout<<maxNum<<endl;    return 0;}
0 0