uint32_t转double c代码
时间: 2023-08-05 19:14:20 浏览: 350
16位转浮点型float,MODBUS 32位转浮点型float 64位转双浮点型double
可以使用union或者memcpy来实现uint32_t到double的转换。
方法一:使用union
```c
#include <stdio.h>
#include <stdint.h>
typedef union {
uint32_t i;
double d;
} uint32_double;
int main() {
uint32_double ud;
ud.i = 0x3f800000; // 1.0的uint32_t表示
printf("%f\n", ud.d);
return 0;
}
```
方法二:使用memcpy
```c
#include <stdio.h>
#include <stdint.h>
#include <string.h>
int main() {
uint32_t i = 0x3f800000; // 1.0的uint32_t表示
double d;
memcpy(&d, &i, sizeof(uint32_t));
printf("%f\n", d);
return 0;
}
```
两种方法都可以将uint32_t转换为double。注意在使用union时,需要确保uint32_t和double的大小相同。
阅读全文