求最大连续bit数

题目描述

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

输入描述

  输入一个byte数字

输出描述

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

输入样例  

3 

输出样例

2 

题目分析

  对数字边右移边找连续1的个数的最大值即可。

测试代码

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     int num, count = 0, max = 0;
 6 
 7     while (scanf("%d", &num) != EOF)
 8     {
 9         count = max = 0;
10         while (num)
11         {
12             if (num & 1)
13             {
14                 count++;
15                 max = (count > max) ? count : max;
16             }
17             else
18             {
19                 count = 0;
20             }
21             num >>= 1;
22         }
23         printf("%d\n", max);
24     }
25     return 0;
26 }

 

posted @ 2016-07-14 11:51  新生代黑马  阅读(289)  评论(0)    收藏  举报