登录
首页 串口通信 串口通信
回帖 发帖
正文

主题:CRC 直接算法求助 贴上程序 望大虾指导下

点击:603 回复:0

void CRCTest()
{
 unsigned short cRc_16=0;
 unsigned short i=138;
 cRc_16 = i<<8;
 for(j=8;j>0;j--)
     {
      if(cRc_16&0x8000)                
      cRc_16=(cRc_16<<=1)^0x1021    //## (1)##
      else
      cRc_16<<=1;                  
     }
 printf("%x\n",cRc_16);
}
就专门用一个数138测试一下这个程序 输出来的结果还真是对的 。 我想问一下在我标注(1)的这个语句为什么不是先跟0X1021异或再向前移一位的呢???
如果cRc_16这个数值的第一位是1的话  那这个位不是没有处理到吗?按照上面的程序的话。
11-04-06 11:46

工控新闻

更多新闻资讯