我想我的問題也可以這樣問:在一個雙精度變量中,單個十進制值可以表示多種方式嗎?來自double的字節散列對於相同的值是否總是相同?
我有一個哈希表的實現,雙精度浮點數將是關鍵,我使用哈希算法構建一個哈希,同時迭代每個字節的雙(至少在我的系統是64位,所以8個字節散列)。我的問題是,如果一個單一的值,比如說'1.2345'可以用二進制形式以多於一種的方式表示,那麼它可能會導致單個值的多個可能的散列值。
我不確定在哪裏研究這種可能性。如果我不得不猜測我會猜測這是不可能的,或者如果有可能使某些東西標準化以確保某個值在給定系統上始終具有相同的表示形式。我主要在尋找這方面的確認。
如果一個值可以有多個表示,那麼在對它進行哈希運算之前,我需要對這個值進行規範化處理,我很樂意提供關於如何做到這一點的建議。
編輯:
我已經找到了更多關於浮點數的信息。它們存儲爲mantessa和指數。所以我的問題是單個浮點數可以由Mantessa和指數的多個組合來表示。
請改用固定點嗎? –
這是「尾數」,而不是「mantessa」。除了它是一個有效數字(線性),而不是尾數(對數)。 –