求助:EXCEL,VB,實現 CRC16 校驗
1、想要在EXCEL內將:“6E 04 40 0B 00 22 ”這個6個16進位制資料,做一個CRC16校驗
這個黃色單元格內是需要處理的資料,
紫色單元格內是在http://www.ip33.com/crc.html計算得到的結果。但是每次去網站上面算麻煩。
2、我現在不知道要把一個什麼值給到“CRC16”這個公式
我在一個單元輸入公式“=CRC16(A1)”後,提示結果是:#REF!
不知道這句是什麼意思:Public Function CRC16(Data() As Byte, ByRef bLow As Byte, ByRef bHigh As Byte) As String
試了一下午了累死了。
3、網上找到的程式碼如下,出處是這裡:https://www.cnblogs.com/zitjubiz/p/modbus_crc16.html
這裡面得到一個"CRC16公式"
Public Function CRC16(Data() As Byte, ByRef bLow As Byte, ByRef bHigh As Byte) As String
Dim CRC16Lo As Byte, CRC16Hi As Byte 'CRC暫存器
Dim CL As Byte, ch As Byte '多項式碼&HA001
Dim SaveHi As Byte, SaveLo As Byte
Dim i As Integer
Dim flag As Integer
CRC16Lo = &HFF
CRC16Hi = &HFF
CL = 1
ch = &HA0
For i = LBound(Data) To UBound(Data) - 2
CRC16Lo = CRC16Lo Xor Data(i) '每一個資料與CRC暫存器的低8位進行異或
'右移8次
For flag = 0 To 7
'記錄一下,用來判斷移出位是0還是1
SaveHi = CRC16Hi
SaveLo = CRC16Lo
CRC16Hi = CRC16Hi \ 2 '高位右移一位
CRC16Lo = CRC16Lo \ 2 '低位右移一位
If ((SaveHi And &H1) = &H1) Then '如果高位位元組最後一位為1
CRC16Lo = CRC16Lo Or &H80 '則低位位元組右移後前面補1
End If '否則自動補0
If ((SaveLo And &H1) = &H1) Then '如果移出位為1,則與多項式碼進行異或
CRC16Hi = CRC16Hi Xor ch
CRC16Lo = CRC16Lo Xor CL
End If
Next flag
Next i
Dim ReturnData(1) As Byte
ReturnData(0) = CRC16Hi 'CRC高位
ReturnData(1) = CRC16Lo 'CRC低位
Dim Value As Double
Value = CLng(CRC16Hi * 256) + CRC16Lo
CRC16 = ReturnData
bHigh = CRC16Hi
bLow = CRC16Lo
End Function
相關文章
- USB中TOKEN的CRC5與CRC16校驗(神奇的工具生成Verilog實現)
- C實現奇偶校驗
- SpringMVC實現引數校驗SpringMVC
- 【CRC校驗方法】+【FPGA實現(傳送端)】FPGA
- .NET中特性+反射 實現資料校驗反射
- Spring Boot實現通用的介面引數校驗Spring Boot
- go語言實戰之實現比特幣地址校驗教程Go比特幣
- 實現註解校驗Dto欄位是否為空
- SpringAop實現許可權校驗與日誌列印Spring
- CRC校驗查表法原理及實現(CRC-16)
- 一百行js程式碼實現一個校驗工具JS
- spring boot+自定義 AOP 實現全域性校驗Spring Boot
- 前後端實現登入token攔截校驗後端
- C#/VB.NET 將Html轉為ExcelC#HTMLExcel
- 短影片整套原始碼,如何實現冪等性校驗?原始碼
- 實現Nest中引數的聯合型別校驗型別
- 利用husky實現前端專案自定義規範校驗前端
- jwt加meta元資訊實現登入後校驗JWT
- 分享!! 如何自定義許可權校驗的註解並用AOP攔截實現許可權校驗
- springMVC:校驗框架:多規則校驗,巢狀校驗,分組校驗;ssm整合技術SpringMVC框架巢狀SSM
- CRC校驗原理簡介及C程式碼實現說明C程式
- laravel-sms 實現阿里雲手機傳送簡訊驗證碼及校驗Laravel阿里
- Spring Validation最佳實踐及其實現原理,引數校驗沒那麼簡單!Spring
- ECC校驗
- vb.net使用GDI+實現掃雷小遊戲遊戲
- SpringBoot中如何實現業務校驗,這種方式才叫優雅!Spring Boot
- 刷臉認證如何實現人臉又快又準完成校驗?
- Android需求之RxJava2實現表單校驗(註冊登入)AndroidRxJava
- [無心插柳]簡單實現常用的表單校驗函式函式
- json web token 實踐登入以及校驗碼驗證JSONWeb
- C#/VB.NET 給Excel新增、刪除數字簽名C#Excel
- 【超實用攻略】SpringBoot + validator 輕鬆實現全註解式的引數校驗Spring Boot
- 使用phpoffice/phpspreadsheet實現載入excel模板生成excelPHPExcel
- Laravel6 配合 Maatwebsite\Excel 實現 Excel 匯出LaravelWebExcel
- Laravel6 配合 Maatwebsite\Excel 實現 Excel 匯入LaravelWebExcel
- vxe-table 校驗,根據行屬性校驗
- SpringBoot分組校驗及自定義校驗註解Spring Boot
- 時間序列的ADF校驗(單位根校驗)