问题标签 [crc16]
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.
bash - 从 C++ 到 bash 的 crc16 算法
我正在尝试在 bash 中实现 CRC16 校验和。我正在从现有的 C++ 代码中移植。我快到了,但我得到了不同的答案。
我不太明白为什么 C++ 代码和 bash 脚本之间的校验和不同。
另一双眼睛会有很大的帮助。
这是 C++ 代码:
这是我的 bash 代码:
它会与整数的大小有关吗?我猜在 bash 中我对此无能为力。
我得到了一个实际数字,但它与我知道可以正常工作的 C++ 不匹配。有没有人看到我可能把事情搞砸的地方?
c - CRC 算法如何为 CCITT16 工作以及如何为 CCITT8 获得一个
我正在寻找实现 CRC-8 校验和 - 在阅读 CRC 时,我遇到了 CCITT-16 的算法(多项式 X^16 + X^12 + X^5 + 1):
或者作为宏:
我在这里有两个问题:
- 这个算法是如何从多项式推导出来的?
- CCITT8(多项式 X^8 + X^2 + X + 1)是否有类似的简单算法?
c# - c#中的CRC-ITU计算
我是 C# 的新手。我需要为从 GPS 设备接收到的数据包计算 CRC-ITU。文档中提供了 C 代码,但我不知道如何将其移植到 C#,任何人都可以帮助我吗?
这是 C 中的 CRC-ITU 算法:
我还从http://ppcode.blogbus.com/logs/1656947.html找到了 C# 代码,但我不知道如何使用它,这是代码
这是文档中的一些示例:
完整数据包:0x78 0x78 0x0D 0x01 0x01 0x23 0x45 0x67 0x89 0x01 0x23 0x45 0x00 0x01 0x8C 0xDD 0x0D 0x0A
起始位:0x78 0x78 长度:0x0D 协议号:0x01 设备 ID:0x01 0x23 0x45 0x67 0x89 0x01 0x23 0x45 序列号:0x00 0x01 CRC 校验:0x8C 0xDD 停止位:0x0D 0x0A
从文档中引用:
设备或服务器可以通过识别码判断接收到的数据的准确性。有时,由于电子噪声或其他干扰,数据在传输过程中会发生一些变化。在这种情况下,识别代码可以确保核心或关联核心对此类错误数据不做任何事情,这将增强系统的安全性和效率。该识别码采用CRC-ITU识别方法。CRC-ITU值是协议中从“Package Length”到“Information Serial Number”(包括“Package Length”和“Information Serial Number”),如果接收方接收到CRC错误的计算信息,则忽略并丢弃该数据包裹。
所以有人知道如何从上面的例子中获得 crc 值吗?谢谢
c - 计算 CRC16 校验和的函数
我正在开发一个库,以通过 RS232 或 RS485 连接提供简单可靠的通信。此代码的一部分涉及对数据使用 CRC16 校验和来检测线路噪声造成的损坏。我创建了一个函数来计算 CRC16 校验和,但它似乎没有输出正确的值。
我写的相关代码如下(也可以在这里找到)。
我正在对照这个在线 CRC 计算器检查我的输出。
我得出的结论要么是我对如何计算 CRC16 的理解是错误的,要么是在线计算器是错误的(前者似乎更有可能)。有人可以告诉我哪里可能出错了吗?
python - 将 Matlab 代码翻译成 Python
我对这个算法有疑问:
我需要将该代码翻译成 Python,并且我已经完成了以下操作:
我的问题是下一个:
当我执行 de Python 代码时,计算 de xor 需要很长时间,我认为问题在于
是一个矩阵,计算时间很长。哪个是问题?
该算法的伪代码如下:
我的问题是:为什么我的 python 代码需要很长时间才能执行?怎么了?我认为的问题在于
非常感谢!
php - PHP 十六进制和二进制
我有以下格式的字符串:“0A1344010400010005”(十六进制表示)
我需要将此字符串转换为字节数组(0x0a、0x13、0x44 等),以便可以在以下函数中使用这些数据:
$this->value
值为0xFFFF
。$this->arr
是一个包含元素的数组:array(0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf)
.
我做了以下事情。基本上,这会遍历字符串并将每 2 个字符分隔为每字节的十六进制表示并将它们转换为二进制字符串。
似乎它一直在生成值 0 的结果。有什么我应该做的吗?
非常感谢你的帮助!
php - 为 CRC16 函数将 C 转换为 PHP
我需要帮助将 C 代码转换为 PHP。以下是C代码:
到目前为止,我已经设法转换了以下 PHP 代码:
我试图运行以下代码:
它似乎显示了错误的结果。当我尝试$str
用其他值替换时,结果将始终相同。
我相信我的 PHP 代码可能有问题。但是,我似乎无法弄清楚造成这种情况的原因。
cryptography - Progress 10.1C 4GL 编码功能
有谁知道Progress 10.1C在编码函数中使用了哪种算法?
我发现了这个: http: //knowledgebase.progress.com/articles/Article/21685
Progress 4GL ENCODE函数使用CRC -16算法生成其编码输出。
进度 4GL:
给出输出“ LkwidblanjsipkJC ”
但是例如在http://www.nitrxgen.net/hashgen/上使用密码“测试”,我从来没有从进度中得到结果。
有任何想法吗?:)
linker - 在 IAR Embedded Workbench 中自动配置链接器
我正在做一个固件项目,我必须对闪存完整性进行 crc16 检查。
crc 使用 IAR Xlink 链接器计算并保存在闪存的末尾。再次在运行时从代码计算 crc,并与闪存中存储的值进行比较以检查完整性。但是,我们只能在闪存的代码段上计算 crc。每当我们对代码进行一些更改时,它的大小可能会发生变化。我可以自动化我现在手动执行的这个过程吗?
从 .xcl 链接器文件:
在这里,我现在需要更改第二个代码段的结束值,即 0x20A13。我从 .map 文件中得到这个值,即我的代码在闪存内的内存范围。这是我做的第一个改变。
在这里,我需要对代码进行第二次更改:
请帮助自动化此过程!
byte - crc16实现java
我在计算 java 中字节数组的 CRC-16 实现时遇到问题。基本上我正在尝试将字节发送到开始写入标签的 RFID。我可以通过在 mac 上查看 tcpdump 命令来查看数组的校验和值。但我的目标是自己生成它。这是我的字节数组,它应该生成 0xbe,0xd9:
0x55 是标题。正如文档所说,它将被排除在外。
每当我在 java 上尝试这个数组(使用 0xbe,0xd9)时,RFID 就可以工作。我的问题是生成这些校验和值。我几乎搜索了整个网络,但没有机会。我找不到任何产生 0xbe,0xd9 的算法。
任何想法对我来说都是最受欢迎的。提前致谢。
编辑:这是随 rfid 提供的协议