CRC32得出负数有关问题

CRC32得出负数问题得到数组的CRC32值Public Function GetByteArrayCrc32(ByRef buffer() As Byte) As Lon

CRC32得出负数问题
'得到数组的CRC32值
Public Function GetByteArrayCrc32(ByRef buffer() As Byte) As Long
   
  Dim crc32Result As Long
  crc32Result = &HFFFFFFFF
   
  Dim i As Integer
  Dim iLookup As Integer
   
  For i = LBound(buffer) To UBound(buffer)
  iLookup = (crc32Result And &HFF) Xor buffer(i)
  crc32Result = ((crc32Result And &HFFFFFF00) \ &H100) And 16777215
  crc32Result = crc32Result Xor crc32Table(iLookup)
  Next i
   
  GetByteArrayCrc32 = Not (crc32Result)

End Function


 Dim myByte(0 To 3094) As Byte
  Dim j As Integer
  myByte(0) = FristByte(Ts_Data(iArray).Table_Id)
  myByte(1) = SecondByte(Ts_Data(iArray).Section_Syntax_Indicator, Ts_Data(iArray).Reserved_Feature_Use3, Ts_Data(iArray).Section_Length)
  ....
  myByte(22) = Desc_13Byte(Ts_Data(iArray).TS_Descriptor.Last_Table_Id, Ts_Data(iArray).TS_Descriptor.Reserved_Feature_Use3)

  For j = 0 To 3071
  myByte(23 + j) = Ts_Data(iArray).Payload_Data(j)
  Next
   
  Dim cCRC32 As New cCRC32
  Dim CRC As Long
  rResult = cCRC32.GetByteArrayCrc32(myByte())
  SectionCRC = rResult'竟然得出个负值为-2122749930
是不是有问题,这个问题怎么处理

[解决办法]
千万不要把数据改变了。
[解决办法]
因为 VB 没有 Unsigned 数据类型,所以最高位为 1 时就解释为负数,比如你的初始值 &HFFFFFFFF。
不过不影响结果。