gpt4 book ai didi

c - 在 C 中将字节数组转换为 float/long 的问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:50 27 4
gpt4 key购买 nike

长:

  char long_num[8];
for(i=0; i<8; i++)
long_num[i] = data[pos++];

memcpy(&res, long_num, 8);

long_num中的值如下:

127 -1 -1 -1 -1 -1 -1 -1

res 应该是 signed long 的最大值,但实际是 -129。

编辑:这个已经处理好了。这是沟通问题的结果:对于提供data的人来说,一个long是八个字节;对于我的 C,它是四个。

float :

  float *res;
/* ... */
char float_num[4];
for(i=0; i<4; i++)
float_num[i] = data[pos++];

res = (float *)float_num;

它是零。数组值:

62 -1 24 50

我也尝试了 memcpy(),但它也产生了零。我做错了什么?


我的系统:Linux 2.6.31-16-generic i686 GNU/Linux

最佳答案

您正在 little-endian 上运行代码系统。反转数组中的字节顺序并重试:

signed char long_num[] = {-1, -1, -1, -1, -1, -1, -1, 127};
// ...

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

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