c语言中如何将10进制的浮点数转化为16进制存放到char型数组中?

 我来答
conanwj1980
2008-07-22 · TA获得超过438个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:79.3万
展开全部
本人在串口通信中就用到这个,讲浮点数(不谈进制)转化为字符型(楼主所谓的16进制)放入char字符数组。

更精确的说应该是将浮点数,以字节形式放入字节数组(不是char数组哦,因为char是有符号的),用以后续的通信传输(大多数的应用吧)。

我用的基本方法是union(联合)
代码如下:

union UFLOAT
{
float f; // 4个字节浮点型变量
byte by4[4]; // 字节数组,元素为4
}

由于用了union,上面定义的变量占用4字节的内存,也就是说f和by4是共用这4字节内存的。对浮点的转化变得异常简单。

float fNum=100.0; // 待操作的浮点数
byte byBuf[400]; // 可容纳100个转换后的浮点数的整型数组
unsigned int j=0; // 下面用作byBuf的游标
UFLOAT uf; // 用以快速转换的自定义UFLOAT变量
// ...一些运算
// 下面这段代码将fNum转成4字节插入到byBuf中

uf.f=fNum; // 将要转换的浮点数放入UFLOAT变量,此时uf.by[]数组也被赋值了,因为内存是共用的
for (unsigned int i=0;i<4;i++)
{
byBuf[j++]=uf.by4[i];
}
飘雪在春季
2008-07-22 · TA获得超过259个赞
知道小有建树答主
回答量:439
采纳率:0%
帮助的人:0
展开全部
int n=99999;
char sz[16];
sprintf(sz,"%x",n);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lcability
2008-07-22 · TA获得超过425个赞
知道小有建树答主
回答量:1048
采纳率:0%
帮助的人:415万
展开全部
浮点数一般都是16进制存储的,你说的10进制浮点数是字符串格式吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式