zoukankan      html  css  js  c++  java
  • 求CRC校验和的低位和高位的两种方式

    方式1

        unsigned short shrCRCCheckSum = 0;  // 校验和
    1             char tstCRCChecksum[2];
    2             memcpy(tstCRCChecksum,&shrCRCCheckSum,2);    // shrCRCCheckSum:216D
    3             LOGI("=================>Test tstCRCChecksum[0] 低位 :%x",tstCRCChecksum[0]); // 6d
    4             LOGI("=================>Test tstCRCChecksum[1] 高位 :%x",tstCRCChecksum[1]); // 21

    方式2

        unsigned short shrCRCCheckSum = 0;  // 校验和
     1 /*
     2  * 方    法:substring()
     3  * 功    能:截取字符串
     4  * 参    数:char* ch :要转换的 字符串指针
     5  *      int pos   :截取的开始位置
     6  *      int length:截取字符的长度
     7  * 返回值:char* :结果字符串指针
     8  */
     9 char* substring(char* ch,int pos,int length)
    10 {
    11     char* pch=ch;
    12     //定义一个字符指针,指向传递进来的ch地址。
    13     char* subch=(char*)calloc(sizeof(char),length+1);
    14     //通过calloc来分配一个length长度的字符数组,返回的是字符指针。
    15     int i;
    16     //只有在C99下for循环中才可以声明变量,这里写在外面,提高兼容性。
    17     pch=pch+pos;
    18     //是pch指针指向pos位置。
    19     for(i=0;i<length;i++)
    20     {
    21         subch[i]=*(pch++);
    22         //循环遍历赋值数组。
    23     }
    24     subch[length]='';//加上字符串结束符。
    25 
    26     return subch;       //返回分配的字符数组地址。
    27 }
                //求[CRC校验和]
                sprintf(chrCRCCheckSum, "%04X", shrCRCCheckSum);  // shrCRCCheckSum:216D
                LOGI("=================>[CRC校验和] :%s",chrCRCCheckSum);
    
                // 求得高位CRC
                chrMSB = substring(chrCRCCheckSum,0,2);   //chrMSB的值是比如是6D
                char chrConverMSB;
                sscanf(chrMSB, "%x", &chrConverMSB);
                Cmd[134] = chrConverMSB;
                LOGI("=================>[高位CRC] Cmd[134] :%x",chrConverMSB);  // 21
    
                // 求得低位CRC
                chrLSB = substring(chrCRCCheckSum,2,2);
                char chrConvertLSB;
                sscanf(chrLSB, "%x", &chrConvertLSB);
                Cmd[2] = chrConvertLSB;
                LOGI("=================>[低位CRC] Cmd[2] :%x",chrConvertLSB);// 6d
  • 相关阅读:
    自定义圆形图片控件
    获取手机屏幕长宽
    xml文件解析和序列化
    Java开发基础知识之学习篇——==和equals
    Java开发基础知识之学习篇——成员变量与局部变量
    Java开发基础知识之学习篇——String
    Java开发基础知识之认知篇——java初识
    Java开发基础知识之规范篇——命名规范
    Java开发基础知识之规范篇——排版规范
    nginx高性能配置的几个重要参数(java web应用)
  • 原文地址:https://www.cnblogs.com/YangBinChina/p/4261880.html
Copyright © 2011-2022 走看看