问题标签 [error-detection]
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.
binary - 通过附加到消息来匹配 CRC 码
我有一个二进制字符串(如下面的十六进制所示)并且正在使用 CRC-16-CCITT。我希望我所有的 CRC 都达到一个设定值 0x1D0F。我知道可以通过将 2 个字节附加到原始消息的末尾来使 CRC 与该值匹配,但我不确定如何找出附加值需要是什么。
前任。
0x01 0000 0000 0000 0000 0000 0000 0000 0000 13D8
附加值为 0x13D8
通过将此 13D8 添加到消息中,CRC 为我提供了所需的 0x1D0F。
任何有关如何计算此 0x13D8 值的帮助将不胜感激。
如果它可以在代码中巧妙地完成,那将是一个奖励!
crc - 推荐用于数据记录应用的 CRC16 多项式
我正在编写一个数据记录应用程序(在微控制器上运行),它将数据写入普通的嵌入式 NOR 型串行闪存(在本例中为 AT25DF161。)
每个数据包(240 或 496 字节)将一个接一个地单独记录到闪存中。我认为闪存中最常见的故障是卡住位 - 通常是“0”,即未擦除状态。我需要能够检测单个位事件,通常每条记录最多两个(我假设这是 100,000 次写入周期后的最坏情况。)
我正在使用具有内置 16 位 CRC 计算模块的处理器,因此使用更少或更多项对性能没有影响 - 那么我需要做出哪些决定来确定最佳多项式?
crc - 多个小型 CRC 校验还是单个大型 CRC 校验?
假设我有 L = 1024 位来保护使用 16 个额外位的 CRC 校验。我可以选择使用 16 CRC-1(单奇偶校验)或 CRC-16 校验。就错误检测能力而言,哪个选项更好?
对于 16 CRC-1,如果任何 CRC-1 失败,我们的错误将被声明。换句话说,要通过 CRC 校验,所有的 CRC-1 校验都应该通过;否则,将声明错误。
多CRC-1系统实现如下。1024 位分为 16 组,每组 64 位,每个 16 位组附加一个奇偶校验位。
math - 查找代码的汉明距离
一个问题问:求以下代码的汉明距离:
答案是 2。这是如何工作的?我认为汉明距离仅在两个字符串之间?
networking - 奇偶校验错误检测,特定方案如何不起作用的 4 位示例
嘿,所以我要为下周的期中考试做一些修改,我有一个问题,我无法找到材料或理解如何回答。
我可以看到单个错误、双重或三重错误是如何发生的,但我不确定 4 位错误会是什么样子。
algorithm - 丢失位的纠错码
如果我们必须从发送方接收数据作为一大块位(比如 8 位)。
但是,传输不可靠,导致比特丢失。(不是位翻转)这意味着,块中的任何位都可以不存在,并且接收器将仅接收 7 位。
我研究了一些纠错编码,例如“汉明码”。但是,该代码旨在在这种情况下恢复翻转位而不是丢失位。
redundancy - 纠错码
对于允许银行/电汇的支付系统,我需要可靠地将支付与它们所针对的相应用户帐户相关联。为此,用户应在与他的帐户关联的转账中包含一个参考号。
我想用内置冗余(额外符号)生成这个数字,这样我就可以检测和纠正最多 N 个以下(可能是常见的)错误:
- 序列中的符号不正确(错字)
- 两个符号的交换(我猜这与两个不正确的符号相同)
- 序列中缺少符号
- 序列中的额外符号
我搜索了一下,似乎 Reed Solomon 或 BCH 是常用的代码。我唯一找不到的是它们是否支持最后一种情况,即额外的符号。
另外,我希望代码有一个故障模式,它说:“这太糟糕了,我无法修复它”,而不是给我一个随机的“更正”结果。我想我可以简单地通过生成稀疏的参考号来做到这一点,并希望它不太可能意外地碰到一个有效的参考号,但我宁愿有这样的东西:“我最多可以纠正 5 个错误,但如果它是超过3个,我放弃。”
有什么想法吗?谢谢!
error-correction - 汉明码中的奇偶校验
如果已接收到一条消息,例如两个字节,并且已知已使用汉明码对其进行编码,但用于编码的奇偶校验位(偶数/奇数)未知,那么具有奇数奇偶校验和偶数奇偶校验的汉明码是否会应用?努力识别收到的消息中的错误?
hash - 校验和:CRC 还是哈希?
除了性能和安全考虑之外,假设一个具有完美雪崩效应的散列函数,我应该使用它来校验数据块:CRC32 还是截断为 N 字节的散列?即哪个将有更小的概率错过错误?具体来说:
- CRC32 与 4 字节哈希
- CRC32 与 8 字节哈希
- CRC64 与 8 字节哈希
数据块将通过网络传输并重复存储在磁盘上。块的大小可以是 1KB 到 1GB。
据我了解,CRC32 可以以 100% 的可靠性检测多达 32 位翻转,但之后它的可靠性接近1-2^(-32)
并且对于某些模式来说要差得多。完美的 4 字节散列可靠性始终为1-2^(-32)
,所以请看图。
8 字节散列应该具有更好的整体可靠性(2^(-64)
错过错误的机会),那么它应该优于 CRC32 吗?那么CRC64呢?
我想答案取决于此类操作中可能出现的错误类型。我们是否可能会看到稀疏的 1 位翻转或大量块损坏?此外,鉴于大多数存储和网络硬件都实现了某种 CRC,不应该已经处理意外的位翻转吗?
linux - 在 Bash 中检测 JAR 命令失败
我jar
在 bash 中执行这个简单的命令:
如何自动检测执行此命令的失败?失败是指该命令只是由于以下原因未能执行:
- 中的错误
Manifest
, jar
命令本身的不当使用,- 一些随机错误,例如
ClassNotFoundError
,等。
请注意,我不想知道是否归档了正确的课程集。所以我不会认为这是失败的。
我目前只是使用详细选项来检查一切是否顺利。但是,我觉得这很耗时。我只想知道该jar
命令是否成功归档了一组类文件。有没有办法在 bash 中做到这一点?
我发现的关于这个问题的最接近的其他资源是:如果 jar 文件的存档失败,如何检测错误?. 但是,我对批处理文件一无所知,我有兴趣在 bash shell 中执行此操作。