本帖最后由 mxh0506 于 2010-6-13 16:50 编辑
还可以这样:
uint16 get_int16(uint8 msb, uint8 lsb)
{
uint16 result;
result = (uint16)msb<<8 + lsb;
// 或者
result = (uint16)msb*256 + lsb;
return result;
}
不过这样得到的结果只在大端处理器中才能符合LZ的字节序要求(不影响使用,如果你的处理器是小端的,调用时只要互换msb和lsb的参数位置就可以了);这也正是它的优点:代码与特定硬件平台的字节序无关。可以参考MS VC++中的MAKEWORD宏的实现方法。
|