C程序计算CRC
C program to calculate CRC
大家晚安,我一直在基于以下逻辑处理此代码:要获得CRC,您需要执行2个XOR操作,第一个:结果=数据^生成器,然后它在16位上一点一点地移动>>并一遍又一遍地执行XOR,因此crc最终是=结果^生成器,直到它分析整个32位序列。生成器是我老师提供的多项式。
到目前为止,这是代码:
{
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("nr CRC es: ", r1);
getch();
}
我的问题是,当我尝试执行它时,它停留在"while"内并且不提供任何结果,希望有人可以帮助我。
while(r1 > 0){
r1 = dato ^ polin;
r1 = 0x1 >> dato;
}
while 循环永远不会退出,因为 r1
的值在第一次迭代后永远不会更改。从不使用第一行的结果,第二行每次都返回相同的结果,因为循环不会修改 dato
的值。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- 当比特数不是8的倍数时,使用切片8算法计算CRC
- CRC计算 - 一点一点 - C++
- 使用 Boost 计算 ECMA-128 64 位 CRC
- 为什么CRC计算在C和C 版本之间有所不同
- CRC计算模板适用于除CRC8以外的所有类型
- 如何配置CRC表的计算
- C程序计算CRC
- 数据包CRC计算方法
- 在C/C++中计算一个32位CRC查找表
- Arduino CRC计算和串行读取
- CRC计算输出