- 主题:ieee浮点数有这个规律吗
这个应该说“二进制解释/翻译”吧,一般说强制转换是cast,是取整。
【 在 webhost 的大作中提到: 】
: 就是任意两个浮点数Fa、Fb的内存值,强制转换成整数去看待的情况下记为Ia,Ib
: 是否有,若Fa>Fb,一定Ia>Ib
: 同样,Double和Long是否也是这样?
--
FROM 104.134.27.*
你能测试一下1G的浮点数比较和1G个整数比较的性能差异吗?
【 在 webhost 的大作中提到: 】
: 我是遇到了大量浮点数的比较,最大可能G量级,我在想,转换成整数比较会不会快一点?还是说我想多了,其实对cpu来说,这两种比较没有区别?
:
--
FROM 104.134.27.*
好像在C语言里(T)都叫强制转换,但是C++里做了区分
float f;
// 这俩其实都是强制转换,ip 和 &a甚至值都不变
int* pi = (int*) &f; // 1
int i = (int) f; // 2
但是对于1,程序员的真实需求通常是
int fi = *pi; // *((int*)&f);
这个就是重解释转换了:
int i = static_cast<int>(f);
int fi = *reinterpret_cast<int*>(&f);
// 这个转换就不允许了
int* pii = static_cast<int*>(&f);
// 但是兼容C的代码还是可以的
int* pii = (int*)&;
int fi = *pii;
【 在 webhost 的大作中提到: 】
: 有一段内存p1,里面存放了浮点数
: 我想这样做int *p2 = (int *)p1 当做整数数组来处理
: 这个我一直以为是叫强制转换
: ...................
--
FROM 104.134.27.*