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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机C语言怎样把double型转换为char型数据相关的知识,希望对你有一定的参考价值。

在单片机怎样把double型转换为char型数据(C语言方法)

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

#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]);
参考技术A lxb200709 你那个绝对错误,

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

一楼虽然麻烦,但是确实正确的。
参考技术B lxb200709 正解!

郑州条码收款机 说得不对
1.楼主提出的问题是要转换成char型,并不是取出相应8个字节内的数。
2.对于你提出那个疑问也很容易解决,可以在转换前根据想保留的有效位位数对源数乘以一个倍数。再说了这能成问题么?楼主并没有说转换后的数据要再做什么用,可能楼主并不需要多高的精度
参考技术C 和C里一样如
doulbe a;
char b;
b=(char)a;
不过注意不要溢出。。。
参考技术D 将DOUBLE型数据用CHAR字符串形式处理本回答被提问者采纳

arduino 中如何将字符串型转换为float型?

arduino 中如何将字符串型转换为float型?我要在串口输入字符串,比如“12.34”,要把它转换为float,给连接电机的输出端口作为电机速度。arduino 中如何将字符串型转换为float型?我要在串口输入字符串,比如“12.34”,要把它转换为float,给连接电机的输出端口作为电机速度。
高手指教啊

参考技术A String s="1234";
float a=s.toFloat();
参考技术B #include "stdlib.h"
float f;
char* b="12.34";
f=atof(b);
参考技术C 你试试看,
定义一个变量B
串口输入的是A,字符型
加一句:B=(float)A;
我也没试过。

以上是关于单片机C语言怎样把double型转换为char型数据的主要内容,如果未能解决你的问题,请参考以下文章

c语言里怎么把float转换为char型?

怎样把char型数组转存为int型数组?

c语言中怎么把不同类型转化成同一类型?

Arduino中数据类型转换 float/double转换为char 亲测好使,dtostrf()函数

C语言的浮点型怎么转换为整型?

关于unsigned char 型数据转换成十进制或者16进制的问题