急求十六进制转浮点数C程序!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急求十六进制转浮点数C程序!!!相关的知识,希望对你有一定的参考价值。

参考技术A #include
<stdio.h>
#include
<stdint.h>
void
test_disassemble_float()
float
a
=
1.0,
b
=
2.3;
uint8_t
*pa
=
(uint8_t
*)&a,
*pb
=
(uint8_t
*)&b;
printf("%f:
%02x,
%02x,
%02x,
%02x\n",
a,
pa[0],
pa[1],
pa[2],
pa[3]);
//
output:
0x00,
0x00,
0x80,
0x3f
printf("%f:
%02x,
%02x,
%02x,
%02x\n",
b,
pb[0],
pb[1],
pb[2],
pb[3]);
//
output:
0x33,
0x33,
0x13,
0x40

void
test_assemble_float()
uint8_t
pa[4]
=
0x00,
0x00,
0x80,
0x3f;
uint8_t
pb[4]
=
0x33,
0x33,
0x13,
0x40;
printf("%f\n",
*((float
*)pa));
printf("%f\n",
*((float
*)pb));

int
main()
test_disassemble_float();
test_assemble_float();
//
这两个函数,第一个把float拆成了4个uchar,第二个用4个uchar组成了一个float;
//
剩下的就不难了吧,读4个uchar,放到数组里,强制转换;
//
按照你的意思,每个uchar都读2个十六进制数字就行了;
return
0;

字符串转浮点数 字符串转整型数

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
double AtOf(const char* ptr);
double AtOi(const char* ptr)
{
assert(ptr);
double value = 0.0;
double sign = 0;
while (*ptr == ‘ ‘)//跳过空格
{
ptr++;
}
if (*ptr == ‘+‘ || *ptr == ‘-‘)
{
sign = (*ptr == ‘-‘) ? -1 : 1;
ptr++;
}
while (*ptr <= ‘9‘&& *ptr >= ‘0‘)
{
value = value * 10 + *ptr - ‘0‘;
ptr++;
}
return sign*value;
}
void test1()
{
char *p = "   +1234.6978";
double ret = AtOf(p);
printf("%lf\n", ret);
}
void test2()
{
char *p = " -1234.6978";
double ret = AtOi(p);
printf("%lf\n", ret);
}
int main()
{
test2();
system("pause");
return 0;
}
double AtOf(const char * ptr)
{
assert(ptr);
double value = 0.0;
double power = 0.0;
    int sign = 0;
while (*ptr ==‘ ‘ )
{
++ptr;
}
if (*ptr == ‘+‘ || *ptr == ‘-‘)
{
sign = (*ptr == "-") ? -1 : 1;
++ptr;
}
while (*ptr >= ‘0‘ && *ptr <= ‘9‘)
{
value = value * 10 + (*ptr) - ‘0‘;
ptr++;
}
power = 1;
if (*ptr == ‘.‘)
{
++ptr;
while (*ptr >= ‘0‘ && *ptr <= ‘9‘)
{
value = value * 10 + (*ptr) - ‘0‘;
power *= 10;
ptr++;
}
}
return sign*value / power;
}

本文出自 “fun” 博客,请务必保留此出处http://10725723.blog.51cto.com/10715723/1758174

以上是关于急求十六进制转浮点数C程序!!!的主要内容,如果未能解决你的问题,请参考以下文章

十六进制ascii码转浮点数

二进制/十六进制转浮点数的编程(互转类似)

c语言、浮点数怎么变成16进制

以IEEE754短浮点数格式表示十进制数:-3.125 要求写出过程,并最终用十六进制缩写形式表示

怎么将4字节16进制转化成浮点数

lua语言---浮点数转16进制