{
int i; unsigned short reg_crc=0xffff;
while(length--)
{
reg_crc=(reg_crc>>8) & 0x00ff;
reg_crc^= * data++;
for(i=0;i<8;i++)
{
if(reg_crc & 0x01)
{ reg_crc=(reg_crc>>1)^0xa001; }
else
{ reg_crc=reg_crc>>1; }
}
}
return reg_crc;
}
int i; unsigned short reg_crc=0xffff;
while(length--)
{
reg_crc=(reg_crc>>8) & 0x00ff;
reg_crc^= * data++;
for(i=0;i<8;i++)
{
if(reg_crc & 0x01)
{ reg_crc=(reg_crc>>1)^0xa001; }
else
{ reg_crc=reg_crc>>1; }
}
}
return reg_crc;
}
reg_crc = &Hffff
while length <> 0
length = length - 1
reg_crc=(reg_crc \ 256) and &Hff
reg_crc=reg_crc xor 数组(data)
data = data + 1
for i=0 to 8
if reg_crc and 1 <> 0 then
reg_crc=(reg_crc \ 2) xor &Ha001
else
reg_crc=reg_crc \ 2
next
wend
函数名 = reg_crc
Function CRC16(data() As Byte) As String
Dim i As Long
Dim M As Integer
Dim reg_crc As Integer
reg_crc = &HFFFFWhile length <> 0 length = length - 1
reg_crc = (reg_crc \ 256) And &HFF
reg_crc = reg_crc Xor data(M)
M = M + 1
' MsgBox M
For i = 0 To 8
If reg_crc And 1 <> 0 Then
reg_crc = (reg_crc \ 2) Xor &HA001
Else
reg_crc = reg_crc \ 2
End If
Next i
Wend
CRC16 = reg_crc
End Function
‘===================================================================
Private Sub Command5_Click()
Dim CRC() As Byte
Text7.Text = Len(Text1)
CRC = CRC16(Text1.Text)
Text9 = CRC
End Sub
‘===================================================================
C出来:AB41
而我根据你给我的更改的代码出来的是:6AC0麻烦再帮我查找下问题所在,谢谢C##
{
int i; unsigned short reg_crc=0xffff;
while(length--)
{
reg_crc=(reg_crc>>8) & 0x00ff;
reg_crc^= * data++;
for(i=0;i<8;i++)
{
if(reg_crc & 0x01)
{ reg_crc=(reg_crc>>1)^0xa001; }
else
{ reg_crc=reg_crc>>1; }
}
}
return reg_crc; \\reg_crc;结果为AB41
}[/align]\\***********************************************************************************************VB
Function CRC16(data() As Byte) As String
Dim i As Long
Dim M As Integer
Dim reg_crc As Long
reg_crc = &HFFFF&
MsgBox length
length = Len(Text1)
While length <> 0 length = length - 1
reg_crc = (reg_crc \ 256) And &HFF
reg_crc = reg_crc Xor data(M)
M = M + 1
For i = 0 To 7
If reg_crc And 1 <> 0 Then
reg_crc = (reg_crc \ 2) Xor &HA001
Else
reg_crc = reg_crc \ 2
End If
Next i
Wend
CRC16 = reg_crc
End Function
’==================================================================
Private Sub Command5_Click()
Dim CRC() As Byte
Text7.Text = Len(Text1)
CRC = CRC16(Text1.Text)
Text9 = CRC ‘CRC结果为6AC0
End Sub