0
我試圖在一個二進制字符串(以Java爲單位)的區間(假設在「a」和「b」之間)對Double值進行編碼,給定精度(1.234 - 精度在這種情況下是3)Double值。結果字符串的長度應該相等。將Double值編碼爲二進制字符串
我已經嘗試使用:
String binaryForm = Long.toBinaryString(Double.doubleToRawLongBits(n));
不幸的是,所得到的字符串不相等的長度。
任何想法?由此產生的字符串將被用作遺傳算法中的染色體。
爲什麼字符串需要長度相等?僅僅因爲十進制的精度是相同的,並不意味着二進制表示將會是。 –
當然,你是對的。這些字符串必須具有相同的長度,以便它們可以作爲染色體在遺傳算法中使用。 –
雙精度值是64位,因此將零點結果保留爲64個字符。 – rgettman