从无符号字符数组转换为双精度

wil*_*2km 1 c c++ labview

我有一个双转换为无符号字符数组。例如对于值 1,数组变为 {64, 240, 0, 0, 0, 0, 0, 0}。现在我尝试使用以下代码将数组转换回来,但我得到的只是糟糕的值......

double* pdfOutput = (double*)malloc(sizeof(double));
memcpy(pdfOutput, pInputArray, sizeof(double));
Run Code Online (Sandbox Code Playgroud)

你能告诉我问题出在哪里吗?谢谢。

编辑:pInputArray 由 LabVIEW 生成。基本上我在这里要做的是制作一个与LabVIEW VI对话的程序。所以我没有输入数组的控制权...

Dav*_*nan 5

做你要求的简单方法是写:

double pdfOutput = *(double*)pInputArray;
Run Code Online (Sandbox Code Playgroud)

但这将产生与您的代码相同的结果。换句话说,重新解释您拥有的 char 数组不会产生您期望的 double 值。您需要查看 char 数组的来源。创建 char 数组的代码是我期望问题所在的地方。要解决您的问题,您需要了解 LabVIEW 代码在做什么。