我是 C++ 新手。我想以 9 位序列计算从 0 到 0、0 到 1、1 到 0 和 1 到 1 的转换次数。我编写了以下代码;
int main {
srand((unsigned)time(0));
unsigned int x;
for (int i=0:i<=512;i++) // loop-1
{
x=rand()%512;
bitset<9>bitseq(x);
for(int j=0;j<=bitseq.size();j++) // loop-2
{
bool a= bitseq.test(j);
bool b= bitseq.test(j+1)
if ((a==0)&(b==0)==0)
{
transition0_0 = transition0_0 + 1; // transition from 0 to 0
}
else if ((a==0)&(b==1)==0)
{
transition0_1 = transition0_1 + 1;
else if ((a==1)&(b==0)==0)
{
transition1_0 = transition1_0 + 1;
else
{
transition1_1 = transition1_1 + 1;
cout<<transition0_0<<" "<<transition0_1<<endl;
cout<<transition1_0<<" "<<transition1_1<<endl;
}
}
有人请指导我以下
- 如何保存循环 2 中的最后一位值以检查从最后一个 bitset 输出的最后一位到下一个 bitset 输出的第 1 位的转换?
- 如果这不起作用,我如何将它保存在向量中并使用迭代器来检查转换?