说我有以下内容:
int32 a = ...; // value of variable irrelevant; can be negative
unsigned char *buf = malloc(4); /* assuming octet bytes, this is just big
enough to hold an int32 */
是否有一种高效且可移植的算法以可移植的方式将二进制补码 big-endian 表示写入a
4 字节缓冲区buf
?也就是说,无论我们运行的机器如何在内部表示整数,我怎样才能有效地将二进制补码表示写入a
缓冲区?
这是一个C问题,因此您可以依靠C标准来确定您的答案是否满足可移植性要求。