到目前为止,这是代码:
{
int dato; // 16 bits
int polin; // generador
double r1; // resultado de la trama de 32 bits
dato = 0x0000000001000100;
polin = 0x82086DB;
r1 = dato ^ polin; // XOR
polin >>= 1;
while(r1 > 0){
r1 = dato ^ polin;
r1 = 0x1 >> dato;
}
printf("%x %x",dato,polin);
printf("\n\r CRC es: ", r1);
getch();
}
我的问题是,当我尝试执行它时,它会停留在“while”内部并且不会提供任何结果,希望有人可以帮助我。
答案 0 :(得分:1)
while(r1 > 0){
r1 = dato ^ polin;
r1 = 0x1 >> dato;
}
你的while循环永不退出,因为r1
的值在第一次迭代后永远不会改变。第一行的结果从未使用过,第二行每次都返回相同的结果,因为循环不会修改dato
的值。