#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned int do_crc(unsigned char *ptr, int len)
{
unsigned int i;
unsigned int crc = 0xFFFFFFFF;
while(len--)
{
crc ^= (unsigned int)(*ptr++) << 24;
for (i = 0; i < 8; ++i)
{
if (crc & 0x80000000)
crc = (crc << 1) ^ 0x04C11DB7;
else
crc <<= 1;
}
}
return crc;
}
/*psm crc */
char crctest[256] =
{
0x00, 0x00, 0x01, 0xBC, 0x00, 0x5E, 0xE9, 0xFF, 0x00, 0x24,
0x40, 0x0E, 0x48, 0x4B, 0x01, 0x00, 0x17, 0x6A ,0x96, 0xF6,
0x20, 0x00 ,0x00 ,0xFF, 0xFF ,0xFF ,0x41 ,0x12 ,0x48 ,0x4B,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x24,
0xE0, 0x00 ,0x1C ,0x42 ,0x0E ,0x00 ,0x00, 0x60, 0x00 ,0x03,
0xC0, 0x02, 0x40 ,0x02 ,0x0F, 0xFF ,0x00, 0x3A ,0x98, 0x44,
0x0A ,0x00, 0x00, 0x80, 0x00 ,0x00, 0x00, 0x00, 0x00, 0xFF,
0xFF ,0x91 ,0xC0 ,0x00, 0x0C ,0x43 ,0x0A ,0x01 ,0x40, 0xFE,
0x00, 0x7D ,0x03 ,0x00,0x7D ,0x03 ,0xFF
};
int main()
{
int crc32 = do_crc(crctest, 96);
printf("crc is 0x%x\n", crc32);
}
CRC计算工具包括,CRC32 和 CRC-32/MPEG-2 以及CRC32/MPEG-2的计算函数
需积分: 0 50 浏览量
更新于2023-06-27
收藏 551KB RAR 举报
CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据传输和存储中的错误检测技术。它通过在数据后面附加一个校验码来确保数据的完整性,主要用于检查数据在传输或存储过程中是否发生错误。CRC计算工具是实现这一功能的软件工具,能够生成不同类型的CRC校验码,例如CRC8、CRC16和CRC32等。
CRC32是最常见的CRC版本,它使用32位的校验码。这个校验码是通过对原始数据执行特定的二进制除法运算并取模得到的。CRC32在很多应用中都有所使用,如Ethernet、PNG图像格式和ZIP文件等。
CRC-32/MPEG-2则是专门为MPEG-2视频编码标准设计的,它在多媒体数据流的错误检测中起到关键作用。MPEG-2是数字电视和DVD视频的标准,对数据的准确性有很高要求。CRC-32/MPEG-2的计算函数可能与标准的CRC32算法有所不同,以适应MPEG-2协议的特殊需求。
CRC计算工具提供的对比一致性功能非常重要,这意味着无论是在哪个平台上或用哪种方法计算,只要输入的数据相同,得到的CRC校验码也应该相同。这对于验证数据传输的正确性非常关键,因为接收方可以通过重新计算CRC校验码并与发送方提供的校验码进行比较,来确定数据是否在传输过程中出现了错误。
对于PSM(Program Stream Map)包的校验使用,CRC32或CRC-32/MPEG-2同样适用。PSM包是MPEG-2 Transport Stream的一部分,它包含了关于节目流的元数据,如PID(Packet Identifier)信息。确保PSM包的完整性和正确性,可以避免解码过程中的错误,从而保证了视频和音频的顺利播放。
在实际操作中,CRC计算工具通常会提供API或函数库,开发者可以调用这些函数对数据进行CRC校验。例如,用户可能需要使用CRC32/MPEG-2的计算函数来验证接收到的MPEG-2数据流,确保它们没有在传输过程中被篡改或损坏。
在压缩包文件“CRC32”中,很可能包含的是一个或多个实现CRC计算的程序或者库文件,用户可以利用这些资源进行CRC校验的相关开发工作。为了使用这些工具,用户需要了解相关的编程语言和接口,以便正确地集成到他们的项目中。
CRC计算工具是保障数据完整性的关键工具,特别是在通信、存储和多媒体领域。CRC32和CRC-32/MPEG-2提供了不同级别的错误检测能力,而CRC计算工具的对比一致性则保证了跨平台和跨系统的兼容性。对于开发者来说,理解和掌握这些工具的使用,能够提高他们开发的系统或应用的可靠性。
weixin_47488775
- 粉丝: 2
- 资源: 1
最新资源
- 白色扁平化风格的橄榄球足球视频模板下载.zip
- 白色扁平化风格的婚礼策划企业网站模板.zip
- 白色扁平化风格的科技公司模板下载.zip
- 白色扁平化风格的滑雪运动体育项目模板.zip
- 白色扁平化风格的鸟类养殖业企业网站模板.zip
- 白色扁平化风格的披萨连锁店模板下载.zip
- 白色扁平化风格的木材建筑公司模板下载.rar
- 白色扁平化风格的瀑布流卡通动漫网站模板.zip
- 白色扁平化风格的商务服务公司模板下载.zip
- 白色扁平化风格的企业创意联系方式模板下载.zip
- 白色扁平化风格的视差滑动设计网站HTML模板.zip
- 白色扁平化风格的商务合作整站网站模板.zip
- 白色扁平化风格的设计创业公司模板下载.zip
- 白色扁平化风格的室内设计公司模板下载.zip
- 白色扁平化风格的室内游泳馆网站模板下载.zip
- 白色扁平化风格的手机APPwap网页模板.zip