我目前正在研究一种优化算法,该算法需要将实数(Java双精度,具体而言)转换为位串(再次,具体来说:一个有序的Java布尔集合),然后再返回*。使用的方案是第一位指示值是否位于范围的第一个或后半个;第二位再次细分了两半,依此类推。
我正在使用的自制算法在处理具有指定的上限和下限值的范围时工作正常,但是当我尝试使用Java的全部范围double
时会出现问题(我想,虽然我不确定,但这个问题与Double.MAX_VALUE - (-1.0 * Double.MAX_VALUE) > Double.MAX_VALUE
)的事实有关。然而,这不是我今天的问题。我敢肯定,我不是第一个尝试使用这样的数字表示的人,所以我确信我的问题的答案就在于Interwebs;我只是不确定要搜索什么。你怎么称呼这样的实数?
*显然,使用的位数限制了精度;我知道并接受了这一点。