我正在C语言中工作,并假设我有2个字节的小字节序:
buffer[0] = 0x01; buffer[1] = 0x02;
Run Code Online (Sandbox Code Playgroud)
如何将以上内容转换为组合的12位数字?因此,合并后应如下所示:
0x0201
Run Code Online (Sandbox Code Playgroud)
这是一个16位数字。每个字节为8位。
int i = (buffer[0] & 0xFF) | (buffer[1] << 8);
如果要12位,则此
int i = (buffer[0] & 0xFF) | ((buffer[1] & 0x0F) << 8);
转换回缓冲区
char buffer[2];
buffer[0] = i & 0xFF;
buffer[1] = (i >> 8) & 0x0F;
Run Code Online (Sandbox Code Playgroud)