如何在C中将2字节整数转换为2个不同的字符?

The*_*ner 2 c

我想转换unsigned int并将其分成2个字符.例如:如果整数为1,则其二进制表示形式为0000 0001.我希望0000部分在一个char变量中,0001部分在另一个二进制变量中.我如何在C中实现这一目标?

pho*_*gon 5

如果你坚持认为你有一个sizeof(int)==2:

  unsigned int x = (unsigned int)2; //or any other value it happens to be
  unsigned char high = (unsigned char)(x>>8);
  unsigned char low  = x & 0xff;
Run Code Online (Sandbox Code Playgroud)

如果总共有8位(一个字节),则将其分成两个4位值:

  unsigned char x=2;// or whatever
  unsigned char high = (x>>4);
  unsigned char low = x & 0xf;
Run Code Online (Sandbox Code Playgroud)