【发布时间】:2019-04-11 08:19:15
【问题描述】:
我有一个简单的函数,它计算长变量中有多少个 0,其中是某个正整数值的二进制表示。但是我需要实现一个新功能,它将返回最长的连续 0 序列的长度......
0 计数函数:
int nullSeq(long binn)
{
int count=0;
if(binn==0)
return 1;
while(binn!=0)
{
if ((binn & 1) == 0)
{
count++;
}
binn=binn >> 1;
}
return count;
}
F.e.数字 559。559 的二进制表示是 1000101111。0 计数函数将返回 4。零的最长连续序列应该是 3。直到现在我无意识地使用全零的值作为最长序列。它适用于一些数字。但是我需要实现一个新函数来找到最长的零序列。
【问题讨论】:
-
好吧,你为什么不试试呢?我认为您可以使用已有的基本结构。我认为您需要添加两个变量,一个用于计算当前可见的零的数量,另一个用于跟踪看到的最长序列。你只需要决定当
(binn & 1)为真时做什么,为假时做什么。
标签: c while-loop binary numbers long-integer