首頁 > 麗江主要小數民族

麗江主要小數民族

互聯網 2022-01-25 21:24:01

0 引言

前面的文章中介紹了定點小數的基本格式,乘法和除法運算等。我們知道,定點小數具有消耗資源少,運算速度快等優勢;同時也有動態範圍小,容易數值溢出等缺陷。雖然定點小數可以滿足一些場合下的運算需求,但是對於雷達成像,醫學成像,高精度數據採集與分析等場合,仍需要採用浮點數進行運算。

這篇文章來簡單地介紹一下IEEE 754規定的浮點小數格式,並聊一聊定點小數轉換為浮點小數和浮點小數轉換為定點小數的方式。

1 IEEE 754浮點小數單精度浮點

         IEEE 754規定單精度浮點(Single Precision Floating-Point)數為32bits,其中最高位為符號位,接著是8bits的指數部分和23bits的小數部分。如下表所示:

blob.png

         表示的值為:

blob.png

         可表示的值的範圍為:±1.18×10−38~ ±3.4×1038 。一個簡單的例子如下圖所示:

blob.png

雙精度浮點

         雙精度浮點(Double Precision Floating-Point)數為64bits,其中最高位為符號位,接著是11bits的指數部分和52bits的小數部分。如下表所示:

blob.png

         表示的值為:

blob.png

         可表示的值的範圍為:±2.23×10−308~ ±1.80×10308 。如下圖所示:

blob.png

         此外,IEEE 754還規定了一些特殊數字,如正無窮大(+∞)、負無窮大(-∞)和非數(NaN,Not a Number)等。

         下面將以32bit的單精度浮點數為例,簡單地介紹一下浮點數與定點數之間的轉換方式。定點數的格式(有符號原碼數)如下:

blob.png

則有,

blob.png

2 定點小數轉換為浮點小數

         定點小數和浮點小數的小數部分的表示方式是一致的,區別在於:

1)       定點小數存在整數部分,而浮點小數沒有整數部分(即整數部分始終為0);

2)       定點小數沒有指數部分,而浮點小數存在指數部分(類似於科學計數法)。

因此,定點小數和浮點小數之間的轉換的核心是:定點小數的整數部分與浮點小數指數部分之間的轉換。

按照上文提到的定點小數格式,如果按照正常移位比較操作的方式,一般需要8個時鐘周期才能確保定點小數的整數部分全部被移出;需要23個時鐘周期才能保證小數部分的最高位為1。實際上,我們可以採用類似於二分法的方式,這樣只需要3個時鐘便可完成操作,簡要的步驟如下:

1)       如果Fixed[30:23]大於0,則將Fixed[30:0]右移8位;否則判斷Fixed[22:11]是否為0,如果為0,則將Fixed[30:0]左移12位,低位補0;

2)       如果Fixed[22:17]等於0,則將Fixed[30:0]左移6位,低位補0;

3)       如果Fixed[22:20]等於0,則將Fixed[30:0]左移3位,低位補0;

4)       最後根據Fixed[22:20]的值,便可確定浮點小數的指數部分和小數部分的值。

3 浮點小數轉換為定點小數

         浮點小數轉換為定點小數很簡單,一般只需要一個時鐘周期便可以完成。簡要的步驟如下:

1)       如果Float[30:23]小於等於127,則將Float[22:0]右移127-Float[30:23]位;否則將Float[22:0]左移Float[30:23]-127位,低位補0;

2)       然後根據移位后的Float_shift[30:0]便可確定定點小數的整數部分和小數部分。

免責聲明:非本網註明原創的信息,皆為程序自動獲取互聯網,目的在於傳遞更多信息,並不代表本網贊同其觀點和對其真實性負責;如此頁面有侵犯到您的權益,請給站長發送郵件,並提供相關證明(版權證明、身份證正反面、侵權鏈接),站長將在收到郵件12小時內刪除。