大師幫看一下 FC,6D,0D,74,F6,其中74,F6是雙校驗,資料是 FC,6D,0D。 再如資料EC,BB,11,2B,D9,其中2B,D9是雙校驗碼,資料是EC,BB,11那位大師幫算一下,校驗碼的計算方法,感謝感謝
uj5u.com熱心網友回復:
圖上的資料也是一樣的校驗方法uj5u.com熱心網友回復:
CRC-16/CCITT-FALSE (x16+x12+x5+1)http://www.ip33.com/crc.html
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
演算法參考自:https://www.cnblogs.com/yf142857/p/7245758.html
function CRC16_CCITT_0xFFFF(Bytes: TBytes): Word;
const
Polynomial = $1021;
var
CRC: Word;
I, J: Integer;
B: Byte;
Bit, C15: Boolean;
begin
CRC := $FFFF; // initial value
for I := 0 to High(Bytes) do
begin
B := Bytes[I];
for J := 0 to 7 do
begin
Bit := (((B shr (7-J)) and 1) = 1);
C15 := (((CRC shr 15 ) and 1) = 1);
CRC := CRC shl 1;
if (C15 xor Bit) then CRC := CRC xor Polynomial;
end;
end;
Result := CRC and $ffff;
end;
procedure TForm1.FormCreate(Sender: TObject);
const
Data: TBytes = [$FC,$6D,$0D];
var
CRC: Word;
HexStr: AnsiString;
begin
CRC := CRC16_CCITT_0xFFFF(Data);
SetLength(HexStr, 4);
BinToHex(@CRC, PAnsiChar(HexStr), 4);
ShowMessage(String(HexStr));
end;
uj5u.com熱心網友回復:
謝謝謝謝,終于幫我解決問題了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/32635.html
標籤:語言基礎/算法/系統設計
上一篇:DBGridEh 添加EditButtons,并設定圖片,怎么使其透明
下一篇:cxGrid只能選一項等相關問題
