问题标签 [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.
java - 从java中的char数组和字节数组中提取某些字节
我有一个包含十六进制值的 char 数组。它包含 6 个字节。我计算了这 6 个字节的 crc,函数返回 int 值。这是代码。
我的问题是
我使用 bytebuffer 将作为 int 获得的 crc 转换为字节。但是计算出的 crc 存储在 4 字节而不是 2 字节中。我计算了 CRC 16,但结果 crc 是 32 位。我认为这是因为我在 crc 计算中返回了“int”,并且在 java 中写入的 int 是 32 位。
那么如何从字节缓冲区(crc_bytes)或计算出的int crc(crcresult)中只提取两个字节。
我已将“char buffer[]”的字节和计算出的 crc 的两个字节放入单字节数组中。我们如何追加
在一个字节数组中。
上面代码的输出是
其中前 6 个字节是从 char 数组转换而来的字节,后 4 个字节是 crc。
crc - 高效实施 CRC16
我有一个程序,我知道它只能在非常特定的硬件上运行,所以我开始使用由 SSE4.2 指令集提供的 crc32,但现在我需要 crc16 用于不同的目的。有没有办法哄硬件给我crc16和SSE的crc32一样的性能?
谢谢
c++ - CCITT CRC 16 位起始值 0xffff
我需要计算作为参数传递的数据的 CCITT 16 位校验和值以及长度。如果我用测试数据“123456789”填充我的数组 TempStr,使用长度不包括空终止字符的多项式 0x8408,我得到结果字符串 6E90(十六进制)。连同空终止字符,我得到 907A。当我将多项式换成 0x1201 时,我会得到带有和不带有终止字符的结果 29E2(Hex) 和 EFE8(Hex)。
我的问题是:我是否需要计算带有或不带有空终止字符的 CRC 以获得正确的值?我在算法中使用多项式 0x1201 还是反向多项式 0x8408?给定数据 0x29B1 的 CRC 是否正确?我需要正确的值来确定函数是否正常工作。计算这种特定 CRC 类型的算法是否正确?wData=(unsigned int)0xff & *pData++?? 如果有人可以向我解释出了什么问题以及如何解决我的问题,我将不胜感激。谢谢
这是使用并显示 calculate_CRC16 函数的代码:
这是 calculate_CRC16 函数:
c - 计算校验和的 CRC 16 程序
我目前正在编写一个 CRC16 程序,它使用 CRC 16 polynomial 计算字符的 CRC X^16 + X^15 + X^2 + 1
。程序应该从标准输入读取数据并以十六进制输出 16 位 CRC。尽管如此,当我执行程序时,我得到了错误的输出值。
这是我的代码:
输出:
(我在我的 txt 文件中阅读 123456789)
应该是,BB3D
但我得到了7bda
。有人可以帮我弄清楚我做错了什么吗?
c# - 在程序中包含两个 CRC16 字节...?
我想通过 RS232 向控制机器人电机的 DSPIC33F 发送一些字节,DSPIC 必须按顺序接收 9 个字节,最后 2 个字节用于 CRC16,我在 C# 中工作,所以我如何计算要发送的 CRC 字节。
计算 CRC16 的程序,我在互联网上找到了它:
python - 继承和修改 __init__() 方法
我的实验室很快就会收到一些新设备,我正在编写自己的 modbus 脚本来自动化测试过程。到目前为止,这是我不得不用我有限的编程能力来应对的最复杂的任务。
我不想从头开始编写一个新类来管理命令,而是想创建一个EZTcomm
继承其功能的类,bytearray
并添加一个EZTcomm.crc
属性来存储循环冗余校验和。
在阅读了这个问题和 docs.python.org 之后,我仍然对如何做到这一点感到困惑。似乎如果我想__init__()
在我的新类中修改方法,那么我需要先显式调用bytearray.__init__()
,但我不知道如何将EZTcomm
调用中的参数传递给bytearray.__init__()
,也不知道如何使用参数在bytearray.__init__()
调用中作为变量来计算 CRC。
这是我迄今为止所写的:
这是否接近我想要的工作方式?我应该做些什么不同的事情?
c - 如何使用基于表格的 CRC-16 代码?
我希望有人能够解释为什么我的 CRC-16 实现似乎无法在 Visual Studio 上正确运行?我从特定设备的手册中获得了算法,并自己编写了 int main()。当我尝试将参数传递给函数时总是出现“类型”错误,所以我怀疑格式有问题?这是代码附带的信息:
- CRC名称:CRC-16
- 宽度:16 位
- 使用的多项式:1189(十六进制)
- 种子值:FFFF(十六进制)
- 反射输入/输出:否
- 异或输出:否
测试字符串“123456789”的CRC:5502(十六进制)
/li>
excel - 语音选择代码
我对 Excel 中的 VBA 编码比较陌生。我正在尝试开发一个符合 PTI 的标签备份系统。我想在 excel 文件中建立语音选择代码。
我了解 VPC 计算器是免费下载的,但我试图让 VPC 在 Excel 文件中的 GTIN、LOT 或日期信息发生更改时自动更新。我一直在做大量的研究并了解将其应用于 JAVA 的公式。但我不知道如何将它实现为 Excel 的 VBA 格式。我知道人们之前已经能够创建 CRC-16 哈希计算,但我无法让它在与 PTI 语音选择计算器匹配的地方工作。
我的目标是 2 创建 2 个函数。=VPCS(GTIN,LOT,DATE) and =VPCL(GTIN,LOT,DATE)
. GTIN、批次和日期信息将从各自的单元格中提取出来。然后“VPCS”将收集前 2 个小数,而 VPCL 将收集相同信息的 2 个大数。虽然我不确定这是否可能,但如果可以做到,它将帮助许多其他使用这种软件的人。
有人认为这可以做到吗?另外,只是一个补充,如果有人知道任何学习VBA的好网站,请您发布一个链接吗?我正在尝试尽可能多地了解它。
python - 尝试安装 crc16,未检测到 Python
我已经安装了 Python 2.7(64 位),我正在尝试安装crc16
. 我下载了相关的crc16
Python 2.7 安装文件:
https://pypi.python.org/pypi/crc16/0.1.1#downloads
但是,当我尝试安装它时,它说我没有安装 Python 2.7,并且在注册表中看不到它。查看我的 C 驱动器,我可以看到我绝对有一个 Python2.7 的文件夹。我有这个问题是因为crc16
是 32 位吗?我怎样才能crc16
正确安装?
lookup - 带有查找表的 CRC 16-CCITT
所以我对CRC的了解以及Java实现是这样的:
例如,将初始消息作为 16 位多项式
这个得到另外 16 个 0 位
然后,有了除数,
我们在初始消息中每个“1”的开头对齐它,并在位之间进行异或,直到初始消息中不再有 1。在我们的示例中,总共将有 6 个 XOR。
CRC 将是我们消息的最后 16 位,或除法的其余部分。在这种情况下,101011110110000
。
我的问题是,如何使用查找表来实现这一点?有人可以向我展示一个关于如何计算多项式的数值示例吗?