将int转换为C中的字节数组?

Emi*_*Emi 6 c

我需要将存储在int中的十进制数转换为字节数组(也称为存储在unsigned char数组中).

有线索吗?

lep*_*pie 7

或者,如果你知道你在做什么:

int n = 12345;
char* a = (char*)&n;
Run Code Online (Sandbox Code Playgroud)


小智 1

最简单的方法 - 使用 sprintf (或 snprintf,如果有的话):

unsigned char a[SOMESIZE]
int n = 1234;
sprintf( a, "%d", n );
Run Code Online (Sandbox Code Playgroud)

或者,如果您希望将其存储为二进制:

unsigned char a[sizeof( int ) ];
int n = 1234;
memcpy( a, & n, sizeof( int ) );
Run Code Online (Sandbox Code Playgroud)

  • @Zarel 结果将是完全可预测的,但也许是不想要的。 (4认同)
  • 警告:如果不考虑字节顺序,“memcpy”可能会产生不可预测的行为。 (2认同)