gpt4 book ai didi

在c中将int转换为字节数组

转载 作者:行者123 更新时间:2023-11-30 20:45:45 32 4
gpt4 key购买 nike

我想将 int 转换为 char[4],其中 char[4] 中的每个字节都包含一个十进制值2. 所以在下面的例子中:

int p = 2999999;

p 转换为与 k 相同的数组,其中 k 是通过以下方式构造的:

char k[4];
k[0] = 2;
k[1] = 99;
k[2] = 99;
k[3] = 99;

如何用 C 语言做到这一点?

提前致谢!

最佳答案

这对我来说是个奇怪的问题,但没关系。这就是我会做的:

  1. 复制 p 的值,以便稍后使用(我假设此转换并不打算更改其值)。
  2. 使用模运算获取最后 2 位数字
  3. 删减 p 的副本以便能够读取接下来的两位数字。

完整的答案是:

#include <stdio.h>

int main()
{
int p = 2999999;
char k[4];
int p_copy = p;
int i;
for(i = 3; i >=0; i--)
{
k[i] = p_copy % 100;
p_copy /= 100;
}
for(i = 0; i < 4; i++)
printf("k[%d]: %d\n",i, k[i]);
return 0;
}

为了保持理智,输出:

gonczor@wiktor-papu:~/tmp$ gcc test.c -o test
gonczor@wiktor-papu:~/tmp$ ./test
k[0]: 2
k[1]: 99
k[2]: 99
k[3]: 99

关于在c中将int转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48075793/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com