我正在尝试将间隔中的Double值(假设在“a”和“b”之间)编码为二进制字符串(在Java中),给定精度(1.234 - 精度在这种情况下为3)双值。结果字符串的长度应相等。
我尝试过使用:
String binaryForm = Long.toBinaryString(Double.doubleToRawLongBits(n));
不幸的是,结果字符串的长度不相等。
有什么想法吗?结果字符串将用作GA中的染色体。
答案 0 :(得分:0)
使用@rgettman的建议,但规范化0和c = b之间的值 - a。因此,双输入n的新值(m)是:
m = n - a
然后将零填充到64.所有输入都是正数。