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

转换的程序:应用:原理就是复制内存数据再以不同的数据类型来解释。推荐:http://www.cnblogs.com/roucheng/p/cpp11.html

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

转换的程序:

// 输入十进制整数,输出同样内存排布的float表示   
inline float i2f(int i)   
{   
    float f = 0;   
    assert(sizeof(int) == sizeof(float));   
    memcpy(&f, &i, 4);   
    return f;   
}   
   
inline double ll2d(long long ll)   
{   
    double d = 0;   
    assert(sizeof(double) == sizeof(long long));   
    memcpy(&d, &ll, 8);   
    return d;   
}   /* 何问起 hovertree.com */

 应用:

int i = -1052770304;    // 反汇编看到的值是这样,实际是个float型,=-12.0   
float f = i2f(i);   
printf("f=%f\n", f);   
   
long long ll = 0x4004000000000000L;     // 内存里显示成这样。 实际是double型2.5   
double d = ll2d(ll);   
printf("d=%f\n", d);  /* 何问起 hovertree.com */

原理就是复制内存数据再以不同的数据类型来解释。

推荐:http://www.cnblogs.com/roucheng/p/cpp11.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120480.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月24日 下午11:00
下一篇 2021年12月24日 下午11:00


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号