将Double值编码为二进制字符串

时间:2014-01-09 19:04:37

标签: java encoding genetic-algorithm

我正在尝试将间隔中的Double值(假设在“a”和“b”之间)编码为二进制字符串(在Java中),给定精度(1.234 - 精度在这种情况下为3)双值。结果字符串的长度应相等。

我尝试过使用:

String binaryForm = Long.toBinaryString(Double.doubleToRawLongBits(n));

不幸的是,结果字符串的长度不相等。

有什么想法吗?结果字符串将用作GA中的染色体。

1 个答案:

答案 0 :(得分:0)

使用@rgettman的建议,但规范化0和c = b之间的值 - a。因此,双输入n的新值(m)是:

m = n - a

然后将零填充到64.所有输入都是正数。