初级会员 
  
	- 积分
 - 126
 
        - 金钱
 - 126 
 
       - 注册时间
 - 2015-4-13
 
      - 在线时间
 - 17 小时
 
 
 
 | 
 
5金钱 
C语言算法:  
  uchar data[17]={0x3a,0x30,0x31,0x30,0x35,      0x00,0x00,0x00,0x00,//no      0x00,0x00,0x00,0x00,//status       0x00,0x00,    
//LRCData  
     0x0d,0x0a         
};  
   
//*******************************************************************************  
// 语法格式:uchar LRC_Check(uchar *data,uchar length); // 实现功能:LRC数据检测算法程序 // 参数: 无  
// 返回值: LRC检验值  
//******************************************  
uchar LRC_Check(uchar *data,uchar length)  
{   
    uchar i;  uint k;   
    uchar result;  
     uchar lrcdata[length];  for(i=1;i<length+1;i++)  
     {   
         if(data>0x40)     
             lrcdata[i-1]=data-0x41+10;  
          else    
            lrcdata[i-1]=data-0x30;  
      }   
     k=0;   
     for(i=0;i<length/2;i++)  
     {    
          k+=(lrcdata[2*i]*16+lrcdata[2*i+1]);    
     }  
     k=k%256;  
     k=256-k;  
     result=k%256;   
    return result;  
} 
 
 
实现功能:LRC数据检测算法程序。请教原子哥,程序中红框内是什么意思?为什么要和0x40做比较?比较之后又为什么要做对应的处理?谢谢原子哥! |   
 
 
 
 
 
 |