很遗憾,我不得不承认,我放弃了在VBA编程语言中8小时搜索正确的CRC8代码。 有很多例子,但我还没有找到适合我的例子。所以在这里,请求你的帮助,如果有人可以给我写这段代码,或者如果有一个神秘的链接,我没有点击。在VBA中计算CRC8
说明:
AppID = "A00000039656434103F0154020D4000A"
在我的项目,则要求字符“A”在这的AppID结束,因为在此基础上的CRC8应计算。如果理解正确的我有32-byte
ID,关于这一点我想要做的16bits
的CRC8检查(因为我可能在试图写这个CRC8功能整天都疯了)(这是否有道理?)
在给定的例子,我的CRC8应该返回什么只有结果:
CRC8 = 0x6D
,我需要更换下部nible与字符“A”在我的主要的AppID:
FinalAppID = "A00000039656434103F0154020D4000D"
问题:但我根本不知道如何编写,也无法将C++/C#中的代码进行转换。而且我一步一步地完成转换,但它没有奏效。
这是我使用的代码:
我现在不在办公室,所以有可能在上面的代码中错别字,或者一些愚蠢的错误,我刚才写的我的头,因为我一整天都在用它。
与上述代码发生的问题是:
错误:
Error: Overflow!
即使我通过entire string
,或只是16bits
发生该错误。同样的错误。
如果有人有什么可以帮助我的话,我会非常感激他!
你知道哪一行会导致溢出吗?你确定你的UDF工作正常吗? – James 2014-10-30 22:20:53
不幸的是@James我不是那么好的VBA,最近刚刚开始编码,只是因为他们告诉我的这个“小”项目。我不是很好,但在调试。但是,当我MsgBox的CRC8 ..我有一些奇怪的数字..如大负数。 我会再次检查StringToArray函数。但我认为它工作正常,我做了一些测试。 我也尝试关闭错误消息,但我找不到这样做的选项?当我搜索如何将其关闭时,我没有在网络上的每个链接中提到的解决方案资源管理器。 – 2014-10-30 22:23:50
这是一个有趣的问题,但您确实需要用*** ***代码替换它,并让我们知道发生错误的位置。 – RubberDuck 2014-10-31 09:52:25