IEEE-754 浮點數的表示法

為了防止忘記,又為重點考題,所以……

浮點數表示分為三個部份
S:符號,表示正負值,0為正,1為負
E:指數,基準值加上指數,單精度基準值為 [2^(8-1)]-1 = 127,倍精度基準值為 [2^(11-1)]-1 =1023
M:小數,又為精確值,小數值得正規劃,並且隱藏 MSB 的 1 (正規劃後面用例子解釋)

而又分為單精度與倍精度:單精度為32bits,倍精度為64bits
單精度 S:1bit E:8bits M:23bits
倍精度 S:1bit E:11bits M:52bits

ex. -12.625 使用 IEEE-754 單精度 表示浮點數

第一步驟:不管正負號直接將數值轉為二進制
 12.625 => 1100.101 = 1.100101 × 2^3

第二步驟:計算指數
 127+3=130 => 10000010

第三步驟:填入數值置於浮點數規格中
 S E      M
 1 10000010 100101 0000 0000 0000 0000 0
 
 *注意:1)小數部份要隱藏 MSB 的 1 ,只填入小數點之後的數值
     2)剩餘沒用到的地方補0,補足至 23bits (倍精度就補足到 52bits)

 如此一來可以將轉出來的浮點數再表示成 16 進制
 => 1100 0001 0100 1010 0000 0000 0000 0000
 => C14A0000

補充:
 1. 指數E保留0與255做為特殊用途,因此指數真正的範圍在1~254之間。
 2. 指數E與小數M的特殊用途組合如下
   E=0  M=0:表示0
   E=0  M≠0:未正規形式
   E=255 M=0:表示無限大 (配合正負號,可以表示正無限、負無限)
   E=255 M≠0:NaN (Not a Number)
 3. 浮點數精確度的問題
   由於浮點數當小數位數不足的時候會發生兩種 error
   a.進位誤差:超出表示範圍的數值,使用四捨五入產生的誤差
   b.捨去誤差:不足放入小數表示位數所剩餘的小數值,皆捨去產生的誤差
   所以為了解決這樣的誤差,只有提高小數點可存放的位數,但是相對的所佔用的容量就很大
 4. 轉換浮點數值的網頁工具
   http://babbage.cs.qc.edu/IEEE-754/Decimal.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值