求CRC校验和的低位和高位的两种方式
方式1
unsigned short shrCRCCheckSum = ; // 校验和
char tstCRCChecksum[];
memcpy(tstCRCChecksum,&shrCRCCheckSum,); // shrCRCCheckSum:216D
LOGI("=================>Test tstCRCChecksum[0] 低位 :%x",tstCRCChecksum[]); // 6d
LOGI("=================>Test tstCRCChecksum[1] 高位 :%x",tstCRCChecksum[]); //
方式2
unsigned short shrCRCCheckSum = 0; // 校验和
/*
* 方 法:substring()
* 功 能:截取字符串
* 参 数:char* ch :要转换的 字符串指针
* int pos :截取的开始位置
* int length:截取字符的长度
* 返回值:char* :结果字符串指针
*/
char* substring(char* ch,int pos,int length)
{
char* pch=ch;
//定义一个字符指针,指向传递进来的ch地址。
char* subch=(char*)calloc(sizeof(char),length+);
//通过calloc来分配一个length长度的字符数组,返回的是字符指针。
int i;
//只有在C99下for循环中才可以声明变量,这里写在外面,提高兼容性。
pch=pch+pos;
//是pch指针指向pos位置。
for(i=;i<length;i++)
{
subch[i]=*(pch++);
//循环遍历赋值数组。
}
subch[length]='\0';//加上字符串结束符。 return subch; //返回分配的字符数组地址。
}
//求[CRC校验和]
sprintf(chrCRCCheckSum, "%04X", shrCRCCheckSum); // shrCRCCheckSum:216D
LOGI("=================>[CRC校验和] :%s",chrCRCCheckSum); // 求得高位CRC
chrMSB = substring(chrCRCCheckSum,,); //chrMSB的值是比如是6D
char chrConverMSB;
sscanf(chrMSB, "%x", &chrConverMSB);
Cmd[] = chrConverMSB;
LOGI("=================>[高位CRC] Cmd[134] :%x",chrConverMSB); // 21 // 求得低位CRC
chrLSB = substring(chrCRCCheckSum,,);
char chrConvertLSB;
sscanf(chrLSB, "%x", &chrConvertLSB);
Cmd[] = chrConvertLSB;
LOGI("=================>[低位CRC] Cmd[2] :%x",chrConvertLSB);// 6d
求CRC校验和的低位和高位的两种方式的更多相关文章
- R语言两种方式求指定日期所在月的天数
R语言两种方式求指定日期所在月的天数 days_monthday<-function(date){ m<-format(date,format="%m& ...
- Codeforces Round #466 (Div. 2) B. Our Tanya is Crying Out Loud[将n变为1,有两种方式,求最小花费/贪心]
B. Our Tanya is Crying Out Loud time limit per test 1 second memory limit per test 256 megabytes inp ...
- 求GCD(最大公约数)的两种方式
求GCD(最大公约数)的两种方式 这篇随笔讲解C++语言程序设计与应用中求GCD(最大公约数,下文使用GCD代替)的两种常用方式:更相减损法和辗转相除法,前提要求是具有小学数学的基本素养,知道GCD是 ...
- 求字符串长度 strlen(数组指针两种方式)
问题: 求字符串中所含有字符的个数(包括空格),即求字符串长度: #include <stdio.h> #include <assert.h> int _strlen(cons ...
- excel让每个单元格的宽度随着字体自动变动的两种方式(有更好方法的大神,请忽略,求评论下)
1.打开在EXCEL的工作表,点击工作表左上方的方框,选中整个工作表,将鼠标一致A列的右边线处,也就是A列和B列中间的分界线处,光标会变成十字,鼠标左键双击,列宽会调整到最恰当处.截图如下
- c语言实现CRC校验和
最近在摄像头采集的数据清晰度上需要加强,则在每一帧传输的数据包后边加了CRC校验和.CRC校验和有16位的,也有32位的.至于CRC校验和算法原理,我是在百度上学习的,其实网上有很多这种资料.简单的说 ...
- 求一个int型整数的两种递减数之和(java)--2015华为机试题
题目描述: 给出一个整数(负数使用其绝对值),输出这个整数中的两种递减数(1.最大递减数:2.递减数中各位数之和最大的数)之和. 递减数:一个数字的递减数是指相邻的数位从大到小排列的数字,不包含相邻的 ...
- Python3求笛卡尔积的两种方法
[本文出自天外归云的博客园] 电影异次元杀阵三部曲中密室线索反复出现笛卡尔积的运用.百度百科: 笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为 ...
- The Super Powers UVA 11752 分析分析 求无符号长整形以内的数满足至少可以用两种不同的次方来表示。比如64 = 2^6 = 8^2; 一个数的1次方不算数。
/** 题目:The Super Powers UVA 11752 链接:https://vjudge.net/contest/154246#problem/Y 题意:求无符号长整形以内的数满足至少可 ...
随机推荐
- 【leetcode】Unique Paths II
Unique Paths II Total Accepted: 22828 Total Submissions: 81414My Submissions Follow up for "Uni ...
- 推荐一篇 OAuth 2.0 必读文章
http://www.cnblogs.com/artech/p/oauth-03.html 共计有3篇相关内容,请仔细阅读! 再说一下我用box api 开发时的问题,在 box 程序登记页面: 对于 ...
- C# 对象实例几种方法
//实例方法1 //new CreateCalss cc1 = new CreateCalss(); //实例方法2 //获取当前程序集 Assembly asse = Assembly.GetExe ...
- c#缓存 笔记
1:缓存. 你需要了解大数据高并发的瓶颈在哪里,一般都是数据库层面的,机械硬盘承载不起非常快速的读写操作,cpu承载不起大量的逻辑运算,所以最基本的解决思路就是:1.换固态硬盘加快硬盘的读写效率.2. ...
- [Linux]centOS7-1-1503-x86_64下安装VM-TOOLS
1.安装Perl. 2.如果提示 The path "" is not a valid path to the 3.10.0-229.el7.x86_64 kernel heade ...
- MySQL 5.6 Threadpool(优先队列)介绍及性能测试【转】
本文来自:http://www.gpfeng.com/?p=540&utm_source=tuicool&utm_medium=referral 背景介绍 MySQL常用(目前线上使用 ...
- 【python】入门学习(四)
函数: 定义函数 #area.py from math import pi def area(radius): """Return the area of a circl ...
- 【网络】VPN和代理服务器的区别
来自:http://www.zhihujingxuan.com/19311.html [scotttony的回答(41票)]: VPN和ssh哪个比较好, 要看你怎么定义是“好”. ssh作为一个创建 ...
- SlimDX.dll安装之后所在位置
C:\Windows\Microsoft.NET\assembly\GAC_64\SlimDX\v4.0_4.0.13.43__b1b0c32fd1ffe4f9\SlimDX.dll
- 移动端hrml模板
<!DOCTYPE html><html><head> <title>时钟</title> <meta charset="u ...