问题标签 [crc64]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
521 浏览

c# - 如何生成具有所有负整数常量和校验和的 Crc-64 表?

我有一些 Crc-64 表生成器的示例代码。我试图检查无符号整数的符号,发现它会生成负整数和正整数的混合表常量。Crc-64 校验和也一样,它可能是负数或正数。是否可以实现一个修改后的 Crc-64 表生成器,它应该生成所有负符号常量以及校验和?或者其他所有正符号常量和校验和。请帮助我提供一些信息和示例实现。

下面是 Crc-64 表生成器的示例代码:

更新:请告知,根据我的问题,此实现是否正确:

0 投票
1 回答
230 浏览

c# - 基于CRC64 LSB的反向实现

我试图实现基于 LSB 的反转功能。代码在 C# 中。校验和的反转存在错误。该函数只能在仅使用 8 字节原始数据计算时反转 Crc64 校验和。当我尝试通过 FixChecksum 方法反转校验和时,中间 6 个字节被反转,但第一个和最后一个字节被反转损坏。请告知有什么问题,需要实施或修复什么。我将不胜感激任何解决方案。

[更新]

0 投票
2 回答
1388 浏览

c - 使用反射输入计算 CRC64 的最有效方法

我需要在这个精彩的网站中使用这个设置计算一个 CRC-64:http: //www.sunshine2k.de/coding/javascript/crc/crc_js.html

如您所见,我需要“输入反射”,这意味着我需要反转任何字节的位顺序(有点烦人)。目前,我使用查找表(例如 0x55 -> 0xAA)实现了这一点,但我想知道 CRC 是否有任何属性可以用来提高效率。

这是我的代码(在 C 中):

提前感谢您的帮助!

更新:实际上我想知道 CRC 的某些属性是否允许我使用反射表、反向移位、倒数/反向多项式......等获得相同的结果。这将让我们跳过反转位的步骤。

解决方案:使用反射表,改变移位方向并反转最后一个结果的位:

感谢大家的帮助!

0 投票
1 回答
329 浏览

algorithm - 为 crc 生成多项式密钥

参考这篇文章: https ://www.digikey.com/eewiki/display/microcontroller/CRC+Basics

多项式密钥是CRC的重要组成部分。密钥不仅仅是随机多项式;它们是使用一组数学公式生成的,旨在增加 CRC 过程识别的错误数量。多项式通常由网络协议或外部设备定义。由于有一套完善的可用密钥,这里不讨论定义密钥的过程。

我了解如何使用给定的多项式密钥计算 CRC,但是,如何生成多项式密钥,并确保它可以使用给定的一组协议捕获尽可能多的错误?

我假设多项式键与以下内容有关:

  1. 数据长度
  2. 数据速度
  3. 其他的?
0 投票
1 回答
714 浏览

crc - CRC 错误检测和未检测到的错误概率

如果我们有一个大文件,比如说 1 PB,那么可以检测所有错误的最佳 CRC​​ 是什么?32位够吗?

我还听说undetected error rate (packet or chunk) is= BitR* BER * 0.5^k哪个 K 是 CRC 的 FSC。在 CRC 32 k 中是 31

我想知道我们是否有更大的数据包或更小的数据包,这将如何影响 CRC ……从这个等式来看,它根本没有影响。

0 投票
2 回答
537 浏览

crc - 循环冗余校验:单位和双位错误

在 Forouzan(数据通信和网络 5E)的书中找到了这个。但是,无法理解这些背后的逻辑。

  1. 这是在孤立的双位错误的情况下。

如果 t 小于 32,768,多项式 x^15 + x^14 +1 不能除以 x^t + 1 类型的任何错误。这意味着该生成器可以检测具有两个彼此相邻或最多相隔 32,768 位的孤立错误的代码字。

  1. 同样在单比特错误的情况下,为什么我们需要特别将 x^0 的系数设为 1,据我所知,如果生成多项式 g(x) 中有多个项,我们应该能够检测到任何单个位错误。在生成器中包含任何两个项(x^i + x^j,i 和 j 不等于 0 且 i 不等于 j)来检测任何单个位错误 x^k 是否就足够了?

请告诉我哪里出错了。

0 投票
1 回答
357 浏览

checksum - 整个文件 CRC 计算未检测到的错误概率

我读过一些论文,未检测到 CRC 码的概率不取决于消息大小,它仅与 CRC 位有关。2^(-32) for 32bit CRC

我的问题是:

  1. 为什么我们需要更广泛的 CRC?即使我们计划对整个文件使用 16 位 CRC,未检测到错误的概率几乎为零,我们可以检测到文件中的所有错误。
  2. 使用 32bit CRC 时需要什么文件大小小于 2 ^ 32 (512 MB) 是否意味着如果我们有突发错误导致超过 512 MB 的文件更改,CRC 不能检测到吗?
0 投票
1 回答
132 浏览

crc - 识别 CRC 的多项式项

我在看这个页面,我看到了这个多项式的项:

  1. 0xad0424f3 = x^32 +x^30 +x^28 +x^27 +x^25 +x^19 +x^14 +x^11 +x^8 +x^7 +x^6 +x^5 +x^2 +x +1

自从转换十六进制以来,这似乎不正确:

0xad0424f310101101000001000010010011110011

它会变成:

  1. x^31+ x^29+ x^27+ x^26+ x^24+ x^18+ x^13+ x^10+ x^7+ x^6+ x^5+ x^4+ x^1+ x^0

你能帮我理解哪一个是正确的吗?那么 64 位 ECMA 多项式呢?

0xC96C5795D7870F42

我想知道每个多项式0xad0424f3和中的项数0xC96C5795D7870F42

0 投票
2 回答
295 浏览

vb.net - VB中的CRC64计算

我正在使用我在 [here][1] 找到的代码来计算 CRC32 校验和。我还想计算一个 CRC64 校验和。但我无法弄清楚如何做到这一点。任何帮助,将不胜感激!

在我用于 CRC32 的“Magnus”代码下方。

感谢 Mark Adler,我得到了代码工作!

下面的代码产生以下结果:CRC64: 995DC9BBDF1939FA

0 投票
1 回答
64 浏览

c++ - 无法在 C++ 中的 CRC 实现中获得以下部分

所以我指的是 Geeks For Geeks 在数据通信中实现 CRC
这是代码:-

我得到了除以下代码之外的所有代码:-

有人可以帮助我理解这部分吗?让我们说数据 = 1010101010 和密钥 = 11001。


问题:-这有什么用,就像这部分到底在做什么:-

标准::字符串(挑选,'0')

任何帮助将不胜感激。