我编写了一个5位的线性反馈移位寄存器。尝试确定通过频率测试生成的密钥的强度,计算位数为零和一。但计数完全不正确。我不知道代码中有什么问题,这是代码的相关部分:
for ( unsigned int freqo; freqo < keyRej.size(); freqo++)
{
if (keyRej[freqo] == 1)
{
count1 = count1 + 1;
}
else{count0 = count0 +1;}
}
cout << count1 << "\n";
cout << count0 << "\n";
指向整个代码的链接:http://pastebin.com/sBMa0J5v
答案 0 :(得分:4)
在c ++中,默认情况下变量不会设置为零。
即。你需要写int count0 = 0
;最初将count0
设置为零。同样适用于count1
。
事实上,在初始化之前使用变量是未定义的行为。