- 主题:ieee浮点数有这个规律吗
保证不了,因为浮点数不是全序的
需要加一些条件,然后做一些比特位的变换,才能转成整数比较
【 在 webhost 的大作中提到: 】
: 就是任意两个浮点数Fa、Fb的内存值,强制转换成整数去看待的情况下记为Ia,Ib
: 是否有,若Fa>Fb,一定Ia>Ib
: 同样,Double和Long是否也是这样?
--
FROM 123.112.18.*
如果你要保证一直都有结果,最好是转成整数(无符号或有符号)
要按浮点数比较的话,如果包含NaN之类的值,在包含这些值的情况下,浮点数集合上的比较操作不是全序
【 在 webhost 的大作中提到: 】
: 我是遇到了大量浮点数的比较,最大可能G量级,我在想,转换成整数比较会不会快一点?还是说我想多了,其实对cpu来说,这两种比较没有区别?
:
--
FROM 123.112.18.*
作一些比特变换,应该可以变成无符号或有符号整数比较
因为符号位在最高位,接下来是指数部分,最后是尾数
【 在 webhost 的大作中提到: 】
: 目标是寻找特定范围的浮点数,而内存里的数据是乱的,那很有可能就碰上您说的NaN,看来,我之前的理解是错的。
: 我以为所有的内存值,都能对应一个特定的浮点数,没想到还会有NaN,Inf.,而且,从规范看,有很多内存数据,都对应这两类。
: 或许得自己定义一个Float结构来解析?
: ...................
--
FROM 123.112.18.*