我對二進制瞭解,但我不理解它的十六進制。帶小數點的toString(16)
下面是一些例子:
Number(0.15).toString(16) // 0.26666666666666
Number(1.5).toString(16) // 1.8
Number(.18).toString(16) // 0.2e147ae147ae14
它看起來像小數點當轉換爲十六進制,這並沒有真正意義,當你從底部10將底座16提高了約40%。它應該像整數一樣下降,對吧?
如果它是/不正確的:你如何手工做這件事?我完全理解轉換整數,但我還沒有找到一個來源轉換十進制十六進制時,dec值有一個小數。
你所看到的是二進制數的十六進制表示 - 而這通常是「數字中的位數」。大多數小數不能完全表示爲二進制數。所以你看到「儘可能多的表現」。如果你用十進制打印數字「0.18」,你會看到它繼續下去。 – Floris
@弗洛伊斯我不確定這是否是一個完整的解釋。這不像這些值是一個「小小的」關閉。相反,「看起來十進制在轉換爲十六進制時增加了大約40%」。那麼,非整數轉換的規則是什麼? – user2246674
@Floris所以它本質上是轉換爲二進制,然後採取4組,並直接轉換爲十六進制,對不對? 3.625 = 11.101是二進制的,但是因爲它只是小數點後的一組,所以它將它改變爲11.1010,而後者變成十六進制的3.A。所以這就是它的作用,但是這在數學上是正確的嗎?我不認爲十六進制數應該高於小數。 – Rhyono