我有一个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,我主要寻求对所发生的操作的解释。
答案 0 :(得分:1)
该测试将codeword
中的2位与偏移2 * i
和2 * i + 1
结合起来,如果它们不是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
}