gpt4 book ai didi

c++ - 制作 AES3 (AES-2003) 的 CRC 表

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:31:54 24 4
gpt4 key购买 nike

为了深入了解我在做什么,我正在尝试处理 SDI 接口(interface)的 AES/EBU 子帧。那不应该太重要;让我们从中抽象出来。

标准文档的

第 12 页 要求使用多项式进行 CRC 校验:G(x) = x^8 + x^4 + x^3 + x^2 + 1(或 x ^0).

文档可以在这里找到:http://tech.ebu.ch/docs/tech/tech3250.pdf

正如您可能预料的那样,我想为给定的公式生成一个 CRC 表。我遇到了一个使用公式 G(x) = x^8 + x^2 + x^1 + x^0 的代码片段。

代码片段可以在这里找到: http://www.koders.com/cpp/fid9C544B36B8C41721691790197D38DAC91D2C29EF.aspx?s=crc#L8

是否可以修改公式(参见下面的修改版本)以使用我的 AES3 CRC?以下是否有效?

// x^8 + x^4 + x^3 + x^2 + x^0 or (1)
void make_crc_table( void )
{
int i, j;
unsigned long poly, c;

/* terms of polynomial defining this crc (except x^8): */
static const byte p[] = {0,2,3,4};

poly = 0L;

for ( i = 0; i < sizeof( p ) / sizeof( byte ); i++ )
{
poly |= 1L << p[i];
}

for ( i = 0; i < 256; i++ )
{
c = i;

for ( j = 0; j < 8; j++ )
{
//ZeroDefect: This part has me worried.
c = ( c & 0x80 ) ? poly ^ ( c << 1 ) : ( c << 1 );
}
crctable[i] = (byte) c;
}
}

如有任何提示/建议,我们将不胜感激。

零缺陷。

最佳答案

据我所知,这只是将 CRC 反馈寄存器的所有可能状态转换(参见 Wikipedia 中的图表)编码到查找表中。

看起来您需要做的就是修改 p[] 数组以考虑您的点击位置。

关于c++ - 制作 AES3 (AES-2003) 的 CRC 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11082109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com