单片机C语言怎样把double型转换为char型数据

来源:百度知道 编辑:UC知道 时间:2024/06/07 04:53:16
在单片机怎样把double型转换为char型数据(C语言方法)

将DOUBLE型数据用CHAR字符串形式处理

单片机不清楚,我只知道在我的机子上可以用如下方法

#include "stdio.h"
#include "string.h"
void main()
{
double a=12.345;
unsigned char b[8];
memcpy(b,&a,8);
for(int i=0;i<8;i++) printf("%x ",b[i]);
}

或者
#include "stdio.h"
#include "string.h"

union A{
double a;
unsigned char b[8];
};

void main()
{
A t;
t.a=12.345;
for(int i=0;i<8;i++) printf("%x ",t.b[i]);
}

和C里一样如
doulbe a;
char b;
b=(char)a;
不过注意不要溢出。。。

lxb200709 正解!

郑州条码收款机 说得不对
1.楼主提出的问题是要转换成char型,并不是取出相应8个字节内的数。
2.对于你提出那个疑问也很容易解决,可以在转换前根据想保留的有效位位数对源数乘以一个倍数。再说了这能成问题么?楼主并没有说转换后的数据要再做什么用,可能楼主并不需要多高的精度

lxb200709 你那个绝对错误,

double a=0.37;
char b;
你能直接 b= (char) a;????

一楼虽然麻烦,但是确实正确的。