将short int复制到char数组

cat*_*eof 3 c c++ format-specifiers

我有一个名为s_int的短整数变量,它保存value = 2

unsighed short s_int = 2;
Run Code Online (Sandbox Code Playgroud)

我想将这个数字复制到char数组到char数组的第一个和第二个位置.

让我们说我们有char buffer[10];.我们希望将两个字节s_int复制到buffer[0]buffer[1].

我该怎么做?

cra*_*cot 13

执行此操作的常用方法是使用按位运算符对其进行切片和切块,一次一个字节:

b[0] = si & 0xff;
b[1] = (si >> 8) & 0xff;
Run Code Online (Sandbox Code Playgroud)

虽然这应该真的完成unsigned char,而不是简单,char因为它们在大多数系统上签名.

存储较大的整数可以以类似的方式或循环来完成.


Jam*_*mes 6

*((short*)buffer) = s_int;

但是viator emptor得到的字节顺序会随着字节顺序而变化.