我想以双精度形式获取数据,因此之后我将数据作为 uint8_t 数组发送。所以我确定了2个步骤。步骤;
1-第一步:加倍到 uint8_t
#include <stdint.h>
#include <stdio.h>
#include <string.h>
void float2Bytes(double val,uint8_t* bytes_array);
int main(void) {
double b=1690.000000;
uint8_t message[1024];
float2Bytes(b,&message[0]);
int ii;
for (ii=0; ii<8; ii++)
printf ("byteS %d is %02x\n", ii, message[ii]);
return 0;
}
void float2Bytes(double val,uint8_t* bytes_array){
// Create union of shared memory space
union {
double double_variable;
uint8_t temp_array[8];
} u;
// Overite bytes of union with float variable
u.double_variable = val;
// Assign bytes to input array
memcpy(bytes_array, u.temp_array, 8);
}
2-Second Step : uint8_t 数组到 Double
你能在这个阶段提供建议吗?我能怎么做 ?你能在第一阶段检查是否有错误。?
谢谢你。