十六進制命令校驗C代碼


/********************************************

 * CRC校驗
 */
unsigned short GetCrc16 ( char *ptr, unsigned short count )  //其中*ptr爲幀首地址,count爲(幀長度-2)
{
  unsigned short crc, i;     //unsigned short 無符號整型,範圍是[0,65535]
  crc = 0;
  while(count--)
   {
      crc = crc ^ (int) *ptr++ << 8;
      for(i = 0; i < 8; i++)
        {
           if(crc & 0x8000)
           crc = crc << 1 ^ 0x1021;
           else
           crc = crc << 1;
        }
    }
 return (crc & 0xFFFF);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章