(C)短整型变量中的位移/字符位置

时间:2013-02-16 01:24:14

标签: c hex byte

C新手。

这里的总体目标是将一个字符放在一个short int中,并让它占用short int的左边字节而不是右边的字节。详细说明 -

我正在尝试使用变量:

unsigned short int packager;

(short int是2个字节。)


并将此字符放入其中:

unsigned char temp = A;

(二进制A是01000001。)


那么,这是怎么做到的?我希望short int看起来像这样:

0100 0001 0000 0000


我目前的想法是使用十六进制值。如果我能说出类似的话 packager = 0x(temp)或0x(temp)并追加0? (idk ..)然后使用移动或掩蔽..我可能能够到达某个地方。最大的障碍似乎是我无法使用变量来生成十六进制值。同样,总体目标是将一个字符放在一个short int中,并让它占用short int的左字节而不是右字节。

1 个答案:

答案 0 :(得分:4)

只需使用

packager = A << 8

请注意,说到左右字节是一个坏习惯。而是使用高和低。左边和右边可能被某些人解释为依赖于地址顺序,因此依赖于endianess(除非你真的想要与地址排序有关)。