首頁>Club>
2
回覆列表
  • 1 # 使用者5812826784382

    首先,計算機的小數並不都叫浮點數。

    只是現代桌面處理器大都整合有 FPU (浮點處理器),我們在寫程式時,用到小數的地方,用 float 型別表示,可以方便快速地對小數進行運算。

    計算機中小數的表示法,其實有定點和浮點兩種。

    定點表示法因其難以避免的侷限性 (表示範圍和精度是一對矛盾體),已經被當代桌面處理器(如x86)摒棄不用。但我想只要你願意,依然可以在你桌上型電腦的編譯器中用定點開心的玩著小數。

    但是,並不是所有的處理器都像 X86 這麼豪,在某些惡劣、簡陋的嵌入式環境中,哪有 FPU 給你用,小數還是不得不用定點的方式,例如某些 DSP。因為定點運算相對浮點較為簡單。

    科普到底,以 32 bit 機器為例,說下什麼是定點數和浮點數。

    好吧,還是儘量說的通俗簡單點。

    定點數

    定點的意思是,小數點固定在 32 位中的某個位置,前面的是整數,後面的是小數。

    小數點具體固定在哪裡,可以自己在程式中指定。

    例如上面的例子,小數點在 23 bit 處。

    無論你是124.25,是0.5, 還是100, 小數點都在 23 bit 的位置固定不變。

    浮點數

    浮點數的儲存格式,一般按照標準 IEEE 754。

    IEEE 754 規定,浮點數的表示方法為:

    最高的 1 位是符號位 s,接著的 8 位是指數E,剩下的 23 位為有效數字 M。

    例如:

    5 DEC = 101 BIN = 1.01 x 2^2

    9 DEC = 1001 BIN = 1.001 x 2^3

    100 DEC = ‭01100100‬ BIN = 1.100100 x 2^6

    0.125 DEC = 0.001 BIN = 1 x 2^-3

    這一下,小數點的位置就是迷之存在,漂浮不定了。

    浮點,想必故此得名吧。

  • 中秋節和大豐收的關聯?
  • 夢幻三國怎樣煉製丹藥?