以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 关于串口CRC校验! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69410)
|
-- 作者:lhpc120
-- 发布时间:2015/6/4 16:37:00
-- 关于串口CRC校验!
当从串口读取了一个字符串以后,如果想校验?如何校验!
」!@#33 $9 「
23364355151103657103
上面是例子:分别是传输过来的明文和十进制的ASCII
其中,明文里面的9位CRC校验!
其中,算法为:2+33+64+35+51+51+10 的和 的NOT(反值) 即等于9
以这种校验方法计算的方法,请问哪位大神会啊!
用win系统自带的计算机,设定为科学计算法,程序员模式中, 十进制 字节
[此贴子已经被作者于2015/6/4 16:36:54编辑过]
|
-- 作者:lhpc120
-- 发布时间:2015/6/4 16:39:00
--
此主题相关图片如下:111.png
计算器图片
[此贴子已经被作者于2015/6/4 16:39:16编辑过]
|
-- 作者:lhpc120
-- 发布时间:2015/6/4 16:53:00
--
没人理吗?
|
-- 作者:大红袍
-- 发布时间:2015/6/4 17:04:00
--
Dim str As String = "23364355151103657103" str = 0 & str.SubString(0, 13) Dim sum As Double = 0 For i As Integer = 0 To str.Length - 1 Step 2 Dim s As String = str.SubString(i, 2) sum += val(s) Next msgbox(255 - sum)
|
-- 作者:lhpc120
-- 发布时间:2015/6/4 17:17:00
--
这样不对的,如果是总和为:731呢?是不是就超出了255的复数了?那就不对啊
|
-- 作者:大红袍
-- 发布时间:2015/6/4 17:34:00
--
Dim str As String = "23364355151103657103" str = 0 & str.SubString(0, 13) Dim sum As Integer = 0 For i As Integer = 0 To str.Length - 1 Step 2 Dim s As String = str.SubString(i, 2) sum += val(s) Next str = "" For Each s As String In DecToBin(sum) str &= iif(s=0, 1, 0) Next msgbox(BinToDec(str))
|