c 計算 char陣列CRC演算法

2022-06-23 01:57:11 字數 1459 閱讀 3041

我使用的os:win7。

我使用的開發環境:vs2010 + sp1 

演算法原始碼:

1 unsigned int create_crc_2(unsigned char *parr, unsigned int

parr_len)214

//資料長度為偶數,原樣複製資料

15else

1620

21//

申請空間失敗

22if (null ==pbuf)

2326

27//

crc為用來移位的32位資料結構,ploy為32位的生成多項式

28 unsigned long crc = 0, ploy = 0;29

//crc餘數值

30 unsigned int crc_code = 0;31

int i = 0, j = 0, k = 0;32

33//

crc = 0xffff0000

34//

crc校驗初始值為0

35 crc = 0

;

36 ploy = 0x80000000;37

//求得32位的生成多項式

38 ploy = ploy ^ ((unsigned long)ploynomal << 15

);39

40//

for (i = 0; i < 2; i++) 實現編碼前預置移位暫存器全為1

41//

先講資料項的前16位放入crc中

42 crc = ((unsigned long)pbuf[0] << 24) ^ ((unsigned long)pbuf[1] << 16

);43

44//

該迴圈實現資料的移位,計算crc餘數

45for (i = 2; i < (int)parr_len + 1; i += 2)46

53//

移位完畢,則移入0000 到 crc的低16位

54else

5559

6061

if (2 ==i)

6273

74//

由於捨去k個0, 因此只需進行16-k次移位

75for (j = 0; j < (16 - k); j ++)

7683}84

else

8594}95

}9697 crc_code = (unsigned int)(crc >> 16

);98

99//

清除緩衝

100delete

pbuf;

101 pbuf =null;

102103

//返回計算結果

104return

crc_code;

105 }

c 中字元陣列操作(char陣列)

1 strcpy s1,s2 複製字串 s2 到字串 s1。2strcat s1,s2 連線字串 s2 到字串 s1 的末尾。3strlen s1 返回字串 s1 的長度。4strcmp s1,s2 如果 s1 和 s2 是相同的,則返回 0 如果 s1s2 則返回值大於 0。5strchr s1,...

C 實現CRC校驗演算法

2007 06 16 10 06 by l,2734 visits,收藏,編輯 region crc校驗 crc高位校驗碼checkcrchigh static byte arraycrchigh crc地位校驗碼checkcrclow static byte checkcrclow crc校驗 校...

CRC16 演算法及c實現

標準crc生成多項式如下表 名稱 生成多項式 簡記式 標準引用 crc 4 x4 x 1 3 itu g.704 crc 8 x8 x5 x4 1 0x31 crc 8 x8 x2 x1 1 0x07 crc 8 x8 x6 x4 x3 x2 x1 0x5e crc 12 x12 x11 x3 x ...