当前位置: 首页 > 知识库问答 >
问题:

是否可以使用联合将 char 数组转换为浮点型?[重复]

山越
2023-03-14

我想知道是否可以使用联合从接收到的char数组中获取浮点数。假设我已经定义了以下结构

typedef union {
  float f;
  char c[4];
} my_unionFloat_t;

如果我收到一个char数组,对一个float进行编码,就像这样(数字是虚构的)

data[4] = {32,45,56,88};

我可以做以下事情吗?

my_unionFloat_t c2f;

c2f.c[0] = data[0];
c2f.c[1] = data[1];
c2f.c[2] = data[2];
c2f.c[3] = data[3];

float result = c2f.f;

共有1个答案

乐健
2023-03-14

在C中实现这一点的最简单方法是使用reinterpret_cast

unsigned char data[4] = {32,45,56,88};
float f = reinterpret_cast<const float&>(data);
const unsigned char* ch =  reinterpret_cast<const unsigned char*>(&f);
for(int i=0; i<4; ++i)
    std::cout << +ch[i] << ' ';
std::cout << f << '\n';
 类似资料:
  • 是否可以将 ?如果是这样 - ? 我目前正在做一个项目,我需要<code>创建一个包含<code>字母表的字符数组。我当前的创建了一个(应该将

  • 问题内容: 有点像这个问题,但是相反。 给定类似,或的字符串,将其转换为浮点数的最佳方法是什么?我正在考虑根据情况使用正则表达式,但是也许有人知道更好的方法或预先存在的解决方案。我希望可以使用,但是我认为第3种情况可以避免这种情况。 问题答案: 我稍微调整了詹姆斯的回答。 http://ideone.com/ItifKv

  • 问题内容: 我有一个Swift程序,可以与C库互操作。这个C库返回一个内部带有数组的结构,如下所示: 该定义已正确导入到Swift中。但是,该字段被解释为8个元素(类型为)的 元组 ,我不知道如何使用Swift 将其转换为a 。 没有可以接受元组的初始化程序,并且似乎不可能获得指向元组的第一个元素的指针(因为类型可以是异构的,这并不奇怪)。 现在,我最好的主意是创建一个微型C函数,该函数接受指向结

  • 问题内容: 我有一个必须解析的二进制文件,并且正在使用Python。有没有办法占用4个字节并将其转换为单个精度浮点数? 问题答案:

  • 转换/展平列表的简单方法是什么 我知道我可以通过迭代并使用来做到这一点,但我想知道是否有更简单的方法使用Java8个流来做到这一点? 可能是这样的,但不必将原语char装箱到Character:

  • 问题内容: 期望: 结果: Jsoup可以将值HTML转换为XHTML吗? 问题答案: 见: