// Demo_CRC.cpp
#include "stdafx.h"
#include <locale.h>
#include "CRC.h"
// 将一个字节逆序
unsigned char inv_bits(unsigned char c);
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"chs");
_tprintf(_T("\nCRC逆计算的演示程序\n\n"));
// 原始数据
unsigned char data[] = {1,2};
_tprintf(_T("原始数据: 0x%02X 0x%02X\n"), data[0], data[1]);
// 初始crc
unsigned short initCrc = 0;
// 计算高位在前CRC
CRC16_H crc_ccitt(0x1021);
unsigned short crcH = crc_ccitt.do_crcH(initCrc, data, sizeof(data));
unsigned char crc16_H[2] = {0};
crc16_H[0] = HIBYTE(crcH);
crc16_H[1] = LOBYTE(crcH);
_tprintf(_T("crc_ccitt数据: 0x%02X 0x%02X\n"), crc16_H[0], crc16_H[1]);
// 验证高位在前CRC, 拉通CRC为0
unsigned char dataL[] =
{
// 原始数据
data[0], data[1],

该示例展示了如何进行CRC高位在前的逆计算,当数据长度等于CRC长度时。通过使用CRC16_H类,计算原始数据的CRC,并将CRC位序反转以进行逆运算。程序中定义了inv_bits函数用于字节位序的反转,并在CRC16_H类中实现了多项式系数的CRC计算表。
最低0.47元/天 解锁文章
1283

被折叠的 条评论
为什么被折叠?



