前言
服务通信、硬件开发,一般都会涉及到字节数据的解析、处理。无论是两个服务间的数据交互协议,还是硬件设备的通信协议,协议中涉及到的参数比较多,并且协议中每个参数占用的字节大小设定会因功能也不尽相同:简单点的参数占用一个字节,复杂点的参数占用两个字节、四个字节,数据长度不定的则长度不做限定等等。
因业务需求的不同,字节方式带来的复杂性也会存在差异,我们这里只简单举例介绍如何提取 int 数据的高低字节。如果大家在开发过程中遇到类似业务时,希望本文的内容能够提供一种参考、一点帮助。
1. 提取 int 高低字节数据
int iVaule = 2745; //(二进制格式为0xAB9)BYTE value_low = iVaule & 0xff; //0xB9
BYTE value_high = iVaule >> 8; //0x0A
2. 提取 unsigned int 不同段位字节数据
unsigned int uValue = 0x12345678;BYTE value_high = uValue >> 24; //0x12BYTE value_m1 = (uValue & 0xff0000) >> 16; //0x34BYTE value_m2 = (uValue & 0xff00) >> 8; //0x56BYTE value_low = uValue & 0xff; //0x78