16进制浮点数如何转化为10进制?

C语言的问题 比如0X0.4P32 如何转化为10进制

1、打开Microsoft Visual Studio 2010, 新建名字为【进制转换示例】的程序。

2、在新程序界面上添加对应的控件:包括,用于输入原始数值的1个文本框;用于选择原始进制和转换进制的2个选择框;用于输出日志的文本框。

3、选择原始进制和转换进制的选择框的数据项分别包括2、10、16和16、10、2等几个级别。

4、原始进制为16进制的转化方法如下。

5、生成exe文件进行测试。

6、测试原始进制为16进制的转换结果,输入原始值100,分别使用转换进制16、10和2进制查看转换结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-05
最简单的方法,先将16进制数写成2进制数,再转化为10进制数。由于16是2的4次方,所以每个16进制数上的每一位,可以写成4位的2进制数 比如: 1ABC=0001 1010 1011 1100 再转换为10进制
第2个回答  2013-06-05
用WINDOWS自带的计算器,换成科学型就可以转换了。
第3个回答  2013-06-05
狠简单,比如1ABC=0001 1010 1011 1100 再转换为10进制
第4个回答  推荐于2017-11-25
本人在串口通信中就用到这个,讲浮点数(不谈进制)转化为字符型(楼主所谓的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];
}本回答被网友采纳