c#crc8位到lua函数
嗨,我在网上和这里搜索了一下,我想唯一的解决办法就是问问熟悉LUA和C#的人 我有一个CRC的8位代码片段,基本上我需要在Lua。。。 我是Lua的新手,但我已经设法写了一些代码来解决问题,但现在有一个新版本,它要求对每条消息进行8位CRC检查 我不得不用谷歌搜索什么是CRC检查以及它们是如何进行的,我想我已经掌握了这个概念。。。我完全不知道如何在Lua中编写这个脚本。。。我发现了一段c#代码,说这是一个简单的通用8位crc计算,我想如果这是在Lua中,我可以适当地调整它,但在web上似乎没有任何直接转换设施 我注意到你们曾经帮助解决过类似的问题,希望你们现在能帮助我。。。我不得不签署一份保密协议来阅读它,因此没有发布代码,对细节也有点谨慎。。。但是,如果我发布这个非特定的通用8位CRC计算例程,也许有人可以为我转换它,或者用Lua编写类似的脚本?出于我的目的,我只需要“解码”一个十六进制字节字符串(非常确定我刚刚编出来!),然后告诉接收者CRC检查的结果应该是什么 所以我有一个十六进制字符串,比如: 3F 12 34 22 09(例如完全虚构和荒谬) 我需要添加一个8BICRC检查结果(希望这是有意义的!) 以下是我找到的常规8位检查C#代码:c#crc8位到lua函数,c#,lua,crc,C#,Lua,Crc,嗨,我在网上和这里搜索了一下,我想唯一的解决办法就是问问熟悉LUA和C#的人 我有一个CRC的8位代码片段,基本上我需要在Lua。。。 我是Lua的新手,但我已经设法写了一些代码来解决问题,但现在有一个新版本,它要求对每条消息进行8位CRC检查 我不得不用谷歌搜索什么是CRC检查以及它们是如何进行的,我想我已经掌握了这个概念。。。我完全不知道如何在Lua中编写这个脚本。。。我发现了一段c#代码,说这是一个简单的通用8位crc计算,我想如果这是在Lua中,我可以适当地调整它,但在web上似乎没有任
private byte calcCRC8(ref byte[] data, int bytes)
{
byte crc = 0xff;
byte poly = 0x85;
int i, j;
for (i = 0; i < bytes; i++)
{
crc ^= data[i];
for (j = 0; j < 8; j++)
{
if ((crc & 0x80) == 0x80)
{
crc = (byte)((crc << 1) ^ poly);
}
else
{
crc = (byte)(crc << 1);
}
}
}
return crc;
}
专用字节calcCRC8(参考字节[]数据,整数字节)
{
字节crc=0xff;
字节poly=0x85;
int i,j;
对于(i=0;i crc=(字节)((crc需要8位crc的人必须需要特定的8位crc。担心语言之前的第一步是确保您知道如何计算正确的crc。文档是否提供了crc参数,如多项式、位顺序、初始值、最终xor?文档是否提供了示例年龄和相应的CRC?你知道你的多项式吗?你有没有具有正确CRC值的数据示例?3F 12 34 22 22 09的正确CRC是什么?这不是一个代码翻译服务。要么学习Lua,要么付钱给学习过的人。而且,这段代码看起来像是由不懂C的人从C翻译过来的汉克斯:对于到目前为止的所有人,我将忽略小猪的评论,但我相信,当他以一种非愤世嫉俗的心情正确阅读帖子时,他会非常有帮助。我明确表示,我正在计划lua,并将尝试修改任何答案,因此很明显,我觉得我正在努力学习……我不羞于被困在某个东西上,绝对不是一个问题上向一个有这么多有才华的开发者的社区寻求帮助(特别是在一个专门为人们提问而设计的网站上!)让人感到羞耻。虽然我能够联系协议的开发者并向他们提问,但它并没有具体说明太多……在这个例子中,我猜“byte poly”一行是多项式(顺便说一句,我没有完全理解多项式是什么)不确定“byte crc”行是什么?可能是初始值?遗憾的是没有“工作示例”…感谢您的帮助,到目前为止,我将与开发人员联系(我觉得他们不是特别懂代码的人…对他们没有冒犯!)为了获得一些信息needed@SamYoué-只需询问开发人员字符串“HELLO”的正确CRC是什么。这就足以推断出多项式和算法的其他参数。会的,谢谢,我会给你们回复结果的