大家好,又见面了,我是全栈君,今天给大家准备了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
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/120480.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...