将 int 存储在 char 数组中?

2023-12-11

我想将 4 字节 int 存储在 char 数组中...这样 char 数组的前 4 个位置就是 int 的 4 个字节。

然后,我想将 int 从数组中取出......

另外,如果有人能给我循环执行此操作的代码,那就加分了……IE 将 8 个整数写入 32 字节数组。

int har = 0x01010101;
char a[4];
int har2;

// write har into char such that:
// a[0] == 0x01, a[1] == 0x01, a[2] == 0x01, a[3] == 0x01 etc.....

// then, pull the bytes out of the array such that:
// har2 == har

多谢你们!

EDIT: Assume int是4个字节...

EDIT2:请不要关心字节序...我会担心字节序。我只是想要用不同的方式在 C/C++ 中实现上述目标。谢谢

EDIT3:如果您不知道,我正在尝试在低级别上编写序列化类......所以我正在寻找不同的策略来序列化一些常见的数据类型。


除非你关心字节顺序等,memcpy会成功的:

memcpy(a, &har, sizeof(har));
...
memcpy(&har2, a, sizeof(har2));

当然,并不能保证sizeof(int)==4在任何特定的实现上(并且有一些现实世界的实现实际上是错误的)。

从这里开始编写循环应该很简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 int 存储在 char 数组中? 的相关文章

随机推荐