码迷,mamicode.com
首页 > 其他好文 > 详细

求最大连续bit数

时间:2016-07-14 13:14:46      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

题目描述

  功能: 求一个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 }

 

求最大连续bit数

标签:

原文地址:http://www.cnblogs.com/maxin/p/5669949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!