FPGA 定點數轉化為浮點數

2021-08-29 02:20:34 字數 1449 閱讀 1454

浮點資料分為單精度和雙精度,單精度32位,雙精度64位。分為3個部分,s為最高符號位,e為指數字(又稱為階碼),m表示尾數。

ieee 754標準

在此,主要介紹定點數轉化為單精度浮點型別

s最高符號位(bit31),e指數字(bit30~bit23),m尾數(bit22 ~ bit0)

示例1:0x0000_0011轉化為單精度浮點數,二進位制表達為32』b0000_0000_0000_0000_0000_0000_0001_0001, 定點數為正數,s為0,指數e表示式為32(輸入資料的位寬)-1+127(偏置)-27(第一位非零值前面0的個數)=131,十六進製制0x83,二進位制』b1000_0011,把32位二進位制定點數向左移位,直到最高位為非零位為止,這時從次高位開始取23位數即為尾數。所以轉換後的浮點數為0_10000011_0001000_0000_0000_0000_0000 16進製為41880000h。

示例2:0x7fff_ffff轉化為單精度浮點數,二進位制表達為32』b0111_1111_1111_1111_1111_1111_1111_1111, 定點數為正數,s為0,指數e表示式為32(輸入資料的位寬)-1+127(偏置)-1(第一位非零值前面0的個數)=157,十六進製制0x9d,二進位制』b1001_1101,把32位二進位制定點數向左移位,直到最高位為非零位為止,這時從次高位開始取23位數即為尾數。所以轉換後的浮點數為0_10011101_1111111_1111_1111_1111_1111 ,進行捨入處理,截掉的為 'b11111111 ,大於0xff的一半,浮點數加1,為32』h4f000000h。

示例2:0x8000_0011轉化為單精度浮點數,二進位制表達為32』b1000_0000_0000_0000_0000_0000_0001_0001, 定點數為負數,s為1,指數e表示式為32(輸入資料的位寬)-1+127(偏置)-0(第一位非零值前面0的個數)=158,十六進製制0x9e,二進位制』b1001_1110,把32位二進位制定點數向左移位,直到最高位為非零位為止,這時從次高位開始取23位數即為尾數。所以轉換後的浮點數為1_10011110_0000000_0000_0000_0000_0000 ,進行捨入處理,截掉的為 'b00010001 ,小於0xff的一半,浮點數不變,浮點數為32』hcf000000h。

浮點數 定點數

浮點數是表示小數的一種方法.所謂浮點就是小數點的位置不固定,與此相反有定點數,即小數點的位置固定.整數可以看做是一種特殊的定點數,即小數點在末尾.8086 8088中沒有浮點數處理指令,不過從486起,cpu內建了浮點數處理器,可以執行浮點運算.一般的浮點數有點象科學計數法,包括符號位 指數部分和尾...

定點數和浮點數 定點數和浮點數計算

這個東西其實不是很難,但是確實足夠繞的,因為從十進位制的加減乘除轉換到二進位制的加減乘除就已經很麻煩了,然後為了選拔人才,不給你二進位制,直接給你十六進製制,當然最麻煩的還是補碼和移碼,確實足夠 但是給予足夠的練習還是可以比較熟練的,公式稍後會整理到置頂的公式大全中。可以看完了以後去嘗試一下相關計算...

定點數與浮點數

1 定點數 定點數指小數點在數中的位置是固定不變的,通常有定點整數和定點小數。在對小數點位置作出選擇之後,運算中的所有數均應統一為定點整數或定點小數,在運算中不再考慮小數問題。1 定義 資料中小數點位置固定不變的數 2 種類 定點整數 3 小數點在符號位與有效位之間。注 定點數受字長的限制,超出範圍...