0

C的新手。

这里的总体目标是将一个字符放入一个短整数中,并让它占据短整数的左字节而不是右字节。详细说明 -

我正在尝试使用一个变量:

unsigned short int packager;

(short int 为 2 个字节。)


并将此字符放入其中:

unsigned char temp = A;

(二进制中的 A 是 01000001。)


那么,这是如何做到的呢?我希望短 int 看起来像这样:

0100 0001 0000 0000


我目前的想法是使用十六进制值。如果我可以说类似 packager = 0x(temp)or 0x(temp) 并附加一个 0?(idk ..)然后使用移位或掩蔽..我也许可以到达某个地方。最大的障碍似乎是我无法使用变量来生成十六进制值。同样,总体目标是将一个字符放入一个短整数中,并让它占据短整数的左字节而不是右字节。

4

1 回答 1

4

只需使用

packager = A << 8

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

于 2013-02-16T01:27:07.273 回答