^= 按位異或後賦值。
crc ^= *ptr++; //首先將數組第壹位異或後復制給Crc。之後ptr再向前壹步,簡單理解就是指向數組的下壹位。
for(i = 0;i < 8;i++) { if(crc & 0x01) crc = (crc >> 1) ^ 0x8C; else crc >>= 1; }
//將取到數組第壹位值,與0x01上。如果非零,crc就需要右移壹位,再與0x8C異或。否則右移1位。每位數組值要做8次。
while(len--) //表示要判斷數組內len個值。或則說是取得數組內len長度的元素個數。
return crc; //len個數組值都作完以後,將Crc返回。
我想妳需要了解壹下 0x01的意義,0x8C的意義。
0x01 = 0000 0001
0x8c = 1000 1100
沒看到啊,已經有人答完了。哎,早知道就不寫這麽多字了。