首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

两个BYTE类型组合成WORD类型的有关问题

2012-03-20 
两个BYTE类型组合成WORD类型的问题白痴问题,小女子C的基础比较差,望高手指点一二,谢谢了:)举个例子说明吧B

两个BYTE类型组合成WORD类型的问题
白痴问题,小女子C的基础比较差,望高手指点一二,谢谢了:)
举个例子说明吧
BYTE   nRecData[5];其中nRecData[2]=0X2D,nRecData[3]=0X3C
word   data;
本来想将nRecData[2]和nRecData[3]组合成一个word类型:0x2D3C,
赋值给word类型变量data,本人程序是这样写的:
data   =   ((WORD)*(   nRecData   +   2   )   );
可是单步运行结果:data   =   0x002D   .
怎么会这样呢?
正确的写法应该是怎样的呢


[解决办法]
data = ((WORD)*( nRecData + 2 ) ); // 这样只能赋给一个值
==>
data = nRecData[2];
data = data < <8; // 移到高位去
data = data | nRecData[3];
[解决办法]
to ls

WORD data = *(WORD*)(nRecData + 2);

这个得到的是 0x3d2c 因为80x86cpu 是小头存储


要得到 0x2c3d 应该

WORD data = (nRecData[2] < < 8) | nRecData[3];

热点排行