聲明,此篇文章針對南京大學的線上課程https://www.coursera.org/lear...,以便回顧。編碼
上圖描述中是咱們平常十進制數字的科學表示法。計算機中的浮點數表示也是基於科學表示的思想來設計的。spa
一樣浮點數表示法也有規定的格式表示,小數點前只有一個有效位。這是規格化的浮點數表示。只要對尾數和指數進行編碼,就能夠在計算機中表示一個浮點數,也就是實數。操作系統
假如是32位操做系統中,表示一個浮點數的範圍如上圖,第0位S爲符號位,表示浮點數的正負。第1到8位進行移碼後的機器碼錶示指數(階碼)。第9到31位是來表示尾數部分的機器碼。由於規格化後的尾數部分小數點前老是1,因此規定第一位默認的1不表示出來,這樣就能夠騰出來一個數位來表示更多的實數。(23位長度能夠表示24位長度的機器碼)設計
IEEE754中定製了單精度的標準:
用1位來表示正負符號,8位表示階,23位表示尾數。階碼範圍能夠表示爲 0000 0000~1111 1111,可是爲了考慮階也可能存在負值,因此規定階的真值加上偏置常數後的機器碼纔是機器存入的值。而偏置常數規定單精度爲2^(8-1) - 1,雙精度爲2^(10-1) -1。又由於全0和全1有特殊的用途,因此規格化後的階碼錶示範圍爲0000 0001(真值-126) ~ 1111 1110(真值127)。
一、0的機器碼錶示,在IEEE754標準中,全0指數和全0尾數能夠表示0,而符號位若是是0的話就是+0 而符號位是1的話就是-0。
二、+/-無窮:浮點數除0結果是是正負無窮,而不是溢出異常。整數除0爲異常。全1的階碼和全0的尾數表示正負無窮大。
三、非數:全0階碼和非0尾數。即非格式化數(小數點前是0,小數點後若干0)。blog