我有下面的C#代码public string CRCCalculator(string dtc){ ushort crc = 0x0000; byte[] data = GetBytesFromHexString(dtc); for (var pos = 0; pos < data.Length; pos++) { crc ^= data[pos]; for (var i = 8; i != 0; i--) { if ((crc & 0x0001) != 0) { crc >>= 1; crc ^= 0xA001; } else crc >>= 1; } } return crc.ToString("X4");}但是我在vb.net中需要它,我亲自尝试过将其转换,并且过去我已经将大量的C#代码转换为vb.net,但是我还没有使用ushort和诸如此类的东西。这是转换后的VB.net代码:Public Shared Function CRCCalculator(dtc As String) As String Dim crc As UShort = &H0 Dim data As Byte() = getBytesFromHexString(dtc) Dim pos = 0 Do While (pos < data.Length) crc ^= data(pos) Dim i = 8 Do While (i <> 0) i = (i - 1) If (crc And &H1) <> 0 Then crc >>= 1 crc ^= &HA001 Else crc >>= 1 End If Loop pos = (pos + 1) Loop Return crc.ToString("X4")End Function我总是得到0,而不是取回值。
- 1 回答
- 0 关注
- 367 浏览
添加回答
举报
0/150
提交
取消