计算CRC的逆(当数据长度等于CRC长度时)

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

// 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],

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值