gpt4 book ai didi

C++ int 或 float 到 char 数组

转载 作者:行者123 更新时间:2023-11-30 04:09:50 25 4
gpt4 key购买 nike

我正在尝试以特定形式将整数或 float 转换为字符数组(为 mbed 编程,一种微 Controller )。

整数应该是 32 位大端二进制补码整数 float 应该是 32 位大端 IEEE 754 float

尝试了一些事情:

uint8_t *v;
uint8_t valuePos = 3;
v = (uint8_t *)datum->data.i; //I get the int or float from datum->data.i
buff[lengthEnd++] = v[valuePos--]; //buff is the char array
buff[lengthEnd++] = v[valuePos--];
buff[lengthEnd++] = v[valuePos--];
buff[lengthEnd++] = v[valuePos];

uint32_t i = BigEndian(datum->data.i);
uint8_t * ptr = (uint8_t *) &i;
strcat(buff, (char *) ptr); //maybe strcat isn't a good function to use here
lengthEnd += 4;

但我无法让它工作,我总是得到一些其他号码。出了什么问题?

最佳答案

看来您错过了 & 运算符。
请试试这个:

v=(uint8_t *)&datum->data.i;

永远不要对二进制数据使用strcat。它用于字符串。二进制数据应该用 memcpy 之类的东西来处理。

关于C++ int 或 float 到 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20935127/

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