我有一个C代码可以填写我的论文。您能否解释一下以下部分的功能,因为我对此感到非常困惑。

int i;
_int8 codeword[64800];

//loop running through codeword
if (codeword[i << 1] << 1 | codeword[i << 1 | 1])
    {
      //more code here
    }


我是一个循环计数器,
codeword []是一个1和0的1d矩阵

例如,如果代码字[i]为1,我主要寻求对发生的操作的解释。

最佳答案

该测试将偏移量codeword2 * i2 * i + 1中的2位组合在一起,并评估它们是否都不都是0。该表达式被解析为:

int i;
_int8 codeword[64800];

//loop running through codeword
if ((codeword[i << 1] << 1) | codeword[(i << 1) | 1]) {
    // more code here
}


请注意,该表达式是等效的,但更易于理解为:

int i;
_int8 codeword[64800];

//loop running through codeword
if (codeword[2 * i] || codeword[2 * i + 1]) {
    // more code here
}

关于c++ - 条件下的换档操作说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45223396/

10-09 13:19