以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 谁能给个LRC校验计算的代码?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=82702)

--  作者:54292550
--  发布时间:2016/3/23 10:33:00
--  [求助] 谁能给个LRC校验计算的代码?
有谁有在foxtable里做过LRC校验码计算的代码?
--  作者:大红袍
--  发布时间:2016/3/23 10:48:00
--  

Dim str As String = "384445463945"

Dim d_lrc As Integer = 0
Dim h_lrc As String = ""
Dim l As Integer = str.Length
Dim c As Integer = 0
While c < l
    Dim c_data As String = str.Substring(c, 2)
    d_lrc = d_lrc + Convert.ToInt32(c_data)
    c = c + 2
End While
If d_lrc >= 16 Then
    d_lrc = d_lrc Mod 16
End If
h_lrc = Convert.ToInt32(Not d_lrc + 1).ToString("X")
If h_lrc.Length > 2 Then
    h_lrc = h_lrc.Substring(h_lrc.Length - 2, 2)
End If
msgbox(h_lrc)


--  作者:54292550
--  发布时间:2017/8/10 14:50:00
--  
以下是引用大红袍在2016/3/23 10:48:00的发言:

Dim str As String = "384445463945"

Dim d_lrc As Integer = 0
Dim h_lrc As String = ""
Dim l As Integer = str.Length
Dim c As Integer = 0
While c < l
    Dim c_data As String = str.Substring(c, 2)
    d_lrc = d_lrc + Convert.ToInt32(c_data)
    c = c + 2
End While
If d_lrc >= 16 Then
    d_lrc = d_lrc Mod 16
End If
h_lrc = Convert.ToInt32(Not d_lrc + 1).ToString("X")
If h_lrc.Length > 2 Then
    h_lrc = h_lrc.Substring(h_lrc.Length - 2, 2)
End If
msgbox(h_lrc)




图片点击可在新窗口打开查看此主题相关图片如下:{8q_haou3hak~ckmkxa@ie.png
图片点击可在新窗口打开查看


大红袍老师,我今天刚好用到这个LRC校验了,才发现和别的软件校验出来的对应不上,求助一下。您看看是哪里出的问题?

图片点击可在新窗口打开查看此主题相关图片如下:@7n93bb(8da`$mv6z)4qj$h.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/8/10 14:50:08编辑过]

--  作者:54292550
--  发布时间:2017/8/10 14:51:00
--  
一个校验出来是F6,一个校验出来是F4
--  作者:有点甜
--  发布时间:2017/8/10 15:28:00
--  

crc参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=61936&skin=0