我有一个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,我主要寻求对发生的操作的解释。
最佳答案
该测试将偏移量codeword
和2 * i
中2 * 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/