如何在C中追加两个字节

时间:2018-06-13 15:17:15

标签: c

我对C语言编程相当新,我有一个问题需要修复。当我收到数据时,最重要的位打印为00f1,最低位打印005e。 如何获得它以使值可以是00f15e? 截至目前我只能让他们打印5ef100

2 个答案:

答案 0 :(得分:1)

假设您正在讨论的是字节而不是位,MSB是0xf1,LSB是0x5e,并且您希望以2字节的形式将所有字节组合在一起:

Maybe

(数字8必须用定义替换以避免幻数)

答案 1 :(得分:1)

使用位操作:

#include <stdio.h>
typedef unsigned char uchar;
int main()
{
    uchar m=0xf1;
    uchar l=0x5e;
    unsigned ml=((unsigned)m)<<8|(unsigned)l; 
    //doing it in unsigned (at least 16 bits guaranteed, no sign bit)
    printf("%06x\n", ml); //prints 00f15e
}