half和float兩種資料型別之間的轉換

2021-10-01 05:57:47 字數 653 閱讀 5100

half和float兩種資料型別之間的轉換

half是用16位表示浮點數的一種資料型別,在ieee 754中也有規定,這種資料型別在深度學習系統中的應用比較廣泛。但是在當前主流cpu上,不支援half型別資料的計算和輸出,所以需要half和float兩個資料型別之間的轉換。

圖1是16位浮點表示的標準,其中包括了1個符號位,5個指數字和10個尾數字。對於正常的數值,其結果如下表示。

圖2是32位浮點數表示的標準,其中包括1個符號位,8個指數字和23個尾數字。對於正常的數值,其結果如下表示。

所以對於half和float之間的轉換,除了不同部分的移位之外,還要做注意指數的基數之間的差別(15和127)。例如,要把half型別轉換為float型別,主要進行以下幾步操作。

符號位左移16位。

指數部分加112(127與15之間的差距),左移13位(右對齊)。

尾數部分左移13位(左對齊)。

float轉換為half的步驟與之相反,不再贅述。

**可以參考我的github。

2 4 兩種資料型別轉換

2.4 資料型別的轉換 目的 進行不同資料型別之間運算。種類 自動型別轉換 和 強制型別轉換 自動型別轉換 自動向上型別轉換 小範圍型別轉為大範圍型別 byte short char int long float double 語法 小範圍型別 變數1 變數1的值 大範圍型別 變數2 變數1 eg ...

js的兩種資料型別

js中的資料型別總體來說分為兩種,他們分別是 1 值型別 基本型別 數值型 number 字元型別 string 布林值型 boolean null 和 underfined 2 引用型別 類 函式,物件,陣列等 值型別理解 變數之間的互相賦值,是指開闢一塊新的記憶體空間,將變數值賦給新變數儲存到新...

asp 操作兩種資料庫的方法

using system using system.collections.generic using system.linq using system.web using system.web.ui using system.web.ui.webcontrols using system.data...