データを double として取得したいので、その後、データを uint8_t 配列として送信します。だから私は2つのステップを決めました.Steps;
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 秒のステップ: uint8_t 配列から Double へ
この段階でアドバイスいただけますか?どのようにできるのか ?そして、最初の段階でエラーがあるかどうかを調べていただけますか。?
ありがとうございました。