short类型和CByteArry之间的转换使用
来源:互联网 发布:条码采集器软件 编辑:程序博客网 时间:2024/06/06 12:42
近日做了串口发送程序,其中遇到了标识数据长度为short类型,但是需转换为字节形式进行发送,经查资料及整合得出以下方法,以此为记,方面以后查询,更希望与人方便,具体如下。
首先定义两个宏
#define LOW_BYTE(x) ((x) & 0xff)//这个宏定义是取short类型的高字节
#define HI_BYTE(x) (((x) >> 8) & 0xff)//这个宏定义是取short类型的低字节
测试代码如下:
CString str;
short n = 345;
short n1;
str.Format("%d",n);
MessageBox(str);
CByteArray ba;
ba.SetSize(2);
//lstrcpy((LPTSTR)ba.GetData(),str);
CString strTemp;
int iCount = ba.GetSize();
ba[0] = HI_BYTE(n);
ba[1] = LOW_BYTE(n);
str.Format("%d",iCount);
MessageBox(str);
strTemp.Format("%d",ba[0]);//此值为1为short高字节整形数据
//MessageBox(strTemp);
strTemp.Format("%d",ba[1]);//此值为89为short低字节整形数据
//MessageBox(strTemp);
n1 = (short)(ba[0]<<8);//此步骤是将两个字节的数据合成一个short类型
n1 = n1 + ba[1];
strTemp.Format("%d",n1);
MessageBox(strTemp);
for(int i=0;i<iCount;i++)
{
str.Format("%d ", ba[i]);
strTemp += str;
}
以上代码经测试无误,来回转换数据正确!
- short类型和CByteArry之间的转换使用
- short 和 int 类型的转换
- char/byte/short类型的加法和类型转换问题
- char类型和short,int类型之类的转换
- Java byte[]和short[]之间的相互转换
- int与short之间的转换
- byte[]和String类型之间的转换
- CString和普通类型之间的转换
- Long 和 Date 类型之间的转换
- 基础类型和byte[]之间的转换
- OLE_COLOR 和 COLORREF 类型之间的转换
- Color和String之间的类型转换
- CString和内置类型之间的转换
- 字符串和基本类型之间的转换
- byte 和boolean,int,String,char,short,long之间的转换
- java Byte和各数据类型(short,int,long,float,double)之间的转换
- char,unsigned char,unsigned short,有符号和无符号之间的转换
- java Byte和各数据类型(short,int,long,float,double)之间的转换
- 2013我不后悔,2014我们一起努力!
- Java构造二叉树以及三种递归遍历
- 锁和中断的交互
- Qt 正则表达式匹配 时分秒 00:00:00
- 跨带影像的合并
- short类型和CByteArry之间的转换使用
- WM_CREATE消息的处理过程
- Linux下常用SVN命令
- 如何保护系统免受slow HTTP attacks
- IP转换
- linux之sort用法
- 协同合作、项目管理、社会化商业······2014年最值得关注的六大趋势
- 为什么添加工程依赖
- ServiceMetadataBehavior 的 HttpsGetEnabled 属性设置为 True,而 HttpsGetUrl 属性是相对地址,但没有 https 基址