【发布时间】:2021-07-04 10:11:43
【问题描述】:
我有计算字符串的 CRC16 CCITT 值的 VBA 代码,但现在我计划在 Google Sheet 上使用它,但不知道它将如何在 google 脚本上使用
Function crc_ccitt_ffff(strParam As String) As String
Const CRC_POLY_CCITT As Long = &H1021&
Const CRC_START_CCITT_FFFF As Long = &HFFFF&
Dim crc_tabccitt(0 To 255) As Long, crc As Long, b() As Byte, c As Long, i As Long, j As Long
For i = 0 To 255
crc = 0
c = i * 256
For j = 0 To 7
If (crc Xor c) And 32768 Then
crc = (crc * 2) Xor CRC_POLY_CCITT
Else
crc = crc * 2
End If
c = c * 2
Next j
crc_tabccitt(i) = crc
Next i
b = strParam
crc = CRC_START_CCITT_FFFF
For i = 0 To UBound(b) Step 2
crc = (crc * 256) Xor crc_tabccitt(((crc \ 256) Xor b(i)) And 255)
crc = ((crc \ 65536) * 65536) Xor crc
Next i
crc_ccitt_ffff = Hex(crc)
End Function
A 列上的字符串:00020101021129370016A000000677010111021312345678901215802TH5406500.5553037646304
B 列(或任何其他列)的预期结果:3D85
谁能帮我解决这个问题?
【问题讨论】:
-
同一个 OP 与前一天的帖子完全相同。较早的帖子有一个符合预期结果的答案:Calculate CRC-16/CCITT-FALSE in Google Apps Script。
标签: google-apps-script google-sheets