計算機中的浮點數(shù)

前言:說完整數(shù)運算拥坛,我們來繼續(xù)說說浮點數(shù)運算

1983 年圖靈獎獲得之之一 ken thompson

浮點數(shù)的表示

IEEE 754 標準

32 位機器下,單精度浮點數(shù)的表示方法如下:

在機器中這樣表示:

  • S 是符號位
  • Exponent 是階碼

    規(guī)格化階碼范圍為 0000 0001 (-126) ~ 1111 1110 (127)本慕。

  • Significand 是部分尾數(shù)

    也就是上圖中藍色的 xxxx 部分。IEEE 754 標準隱藏了最開始的那個 1侧漓。也就是說锅尘,雖然只有 23 位。但實際上有 24 位

一些特殊的浮點數(shù)

  • +/-0
  • 正負無窮
  • 非數(shù)
  • 非規(guī)格化數(shù)字

用規(guī)格化表示的浮點數(shù)有范圍布蔗,正數(shù)最小的值是

  • 符號 S:0
  • 階碼 E:0000 0001
  • 尾數(shù) S:全為 0

得到最小正數(shù):

2^{-126}

那么 0~2^{-126} 就是非規(guī)格化的數(shù)字藤违。

這一段這樣表示(非規(guī)格化):

  • 尾數(shù):不全 0
  • 階碼:全 0

浮點數(shù)的運算

三種運算

這三種運算結(jié)果可能產(chǎn)生以下幾種情況:

  • 階碼上溢:一個正指數(shù)超過了最大允許值 => 正負無窮或者溢出

  • 階碼下溢:一個負指數(shù)超過了最小允許值 => +0/-0

  • 尾數(shù)溢出:最高有效位有進位 => 需要右規(guī)

  • 非規(guī)格化尾數(shù):數(shù)值部分高位為 0 => 需要左規(guī)

  • 右規(guī)或?qū)﹄A時:右端有效位丟失 => 尾數(shù)舍入

IEEE 754 標準規(guī)定的五種異常情況:

  • 無效運算(無意義)
    • 運算時有一個數(shù)字是非有限數(shù)
    • 結(jié)果無效
  • 除以 0(即:無窮大)
  • 數(shù)太大(階上溢):對于單精度浮點數(shù),指階碼 E > 1111 1110
  • 數(shù)太凶葑帷(階下溢):對于單精度浮點數(shù)顿乒,指階碼 E < 0000 0001
  • 結(jié)果不精確(舍入時引起)

上述情況硬件可以捕捉到,因此這些異吃蠼鳎可設(shè)定讓硬件處理璧榄,頁可設(shè)定讓軟件處理特漩。讓硬件處理時,稱為硬件陷阱

浮點數(shù)加減基本要點

有兩點需要注意犹菱!

  • IEEE 754 規(guī)定中間結(jié)果必須在右邊加 2 個附加位
  • IEEE 754 的就近舍入規(guī)則

浮點運算單元(FPU)

浮點數(shù)運算和整數(shù)運算不同拾稳,所以運算單元當然不同吮炕。早期的浮點處理器是作為 CPU 的「外置協(xié)處理器」出現(xiàn)的腊脱。x87 FPU 特指與 x86 處理器配套的「浮點協(xié)處理器架構(gòu)」

有以下要點:

  • 浮點寄存器采用「棧結(jié)構(gòu)」

    • 深度為 8,寬度為 80 位龙亲。即 8 個 80 位的寄存器

    • 名稱為 ST(0) ~ ST(7)陕凹,棧頂為 ST(0),編號分別為 0 ~ 7

  • 所有浮點運算都按 80 位拓展精度進行
  • 浮點數(shù)在浮點寄存器和內(nèi)存之間傳送
    • float鳄炉、double杜耙、long double 型的變量在內(nèi)存中分別用 IEEE 754 單精度、雙精度拂盯、擴展精度表示佑女,分別占 32 位,64 位谈竿,96 位(前 16 位無效)
    • float团驱、double、long double 類型變量在浮點寄存器中都用 80 位拓展精度表示
    • 從浮點寄存器到內(nèi)存:80 位拓展精度格式轉(zhuǎn)換為 32 位或者 64 位
    • 從內(nèi)存到浮點寄存器:32 位或者 64 位轉(zhuǎn)換為 80 位擴展精度格式

常見 FPU 指令

點個喜歡唄
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末空凸,一起剝皮案震驚了整個濱河市嚎花,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌呀洲,老刑警劉巖紊选,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異道逗,居然都是意外死亡兵罢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門滓窍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來卖词,“玉大人,你說我怎么就攤上這事贰您』灯剑” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵锦亦,是天一觀的道長舶替。 經(jīng)常有香客問我,道長杠园,這世上最難降的妖魔是什么顾瞪? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上陈醒,老公的妹妹穿的比我還像新娘惕橙。我一直安慰自己,他們只是感情好钉跷,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布弥鹦。 她就那樣靜靜地躺著,像睡著了一般爷辙。 火紅的嫁衣襯著肌膚如雪彬坏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天膝晾,我揣著相機與錄音栓始,去河邊找鬼。 笑死血当,一個胖子當著我的面吹牛幻赚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播臊旭,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼落恼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了巍扛?” 一聲冷哼從身側(cè)響起领跛,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撤奸,沒想到半個月后吠昭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡胧瓜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年矢棚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片府喳。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡蒲肋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钝满,到底是詐尸還是另有隱情兜粘,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布弯蚜,位于F島的核電站孔轴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏碎捺。R本人自食惡果不足惜路鹰,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一贷洲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧晋柱,春花似錦优构、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至浓领,卻和暖如春玉凯,著一層夾襖步出監(jiān)牢的瞬間势腮,已是汗流浹背联贩。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留捎拯,地道東北人泪幌。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像署照,于是被迫代替她去往敵國和親祸泪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容