IEEE 754格式是什麼

時間 2021-05-06 08:42:57

1樓:Binary life

之前詳細的寫了一篇文章:

本文試圖深入淺出的講明白浮點數標準IEEE 754,並分析其精妙的設計原理。通過舉例說明、回答為什麼,帶你漸進的了解浮點數的知識。

2樓:

計算機再進行數的表達時,沒有直接對正負、小數點的表達方式,人類設計了多種計數編碼方式的,但最著名、應用最廣泛的便是IEEE754標準。

計算機在儲存乙個數的時候,採用的是多個不同位置的二進位制數代表不同的意義,如單精度浮點數和雙精度浮點數,單精度浮點數和雙精度浮點數的本質區別是計數範圍不同。

我們舉例為單精度浮點數,設這串二進位制數為a[31:0],最高位a[31]代表的是符號位,a[23:30]位代表的是階碼也稱偏移碼(象徵著小數點在資料中的位置),a[22,0]代表尾數(象徵著拿掉小數點之後的不含小數點的數)。

注意:象徵不意味著相等,在實際的二進位制中我們叫做:符號位真值、階碼真值、尾數真值。

我們在編碼空間(計算機實際處理時)要對符號位、階碼、尾數進行操作,但在實際中我們認知的稱為符號位真值、階碼真值、尾數真值。編碼空間是真值的對映。

符號位=符號位真值

階碼=階碼真值+127

尾數=尾數真值-1

所以,一般在計算機裡將二進位制數這樣表達:

我們從這個公式中可以分析出,階碼真值控制著小數點的位置,階碼每加1,整個數值增大2倍,小數點則向右移1位;階碼每減1,整個數值減小2倍,小數點則向左移動1位。

單精度浮點數

因為階碼真值有符號數,計算機無法表示有符號數,通常要引入符號位,但IEEE754則有另一種編碼方式,因為階碼是8位寬,可以表達2^8=256個數,我們至多可以表達出-127~+127共計255個數,我們從階碼的0000-0000開始對應-127~+127共計255個數,所以就有了:階碼=階碼真值+127。

我們在計算初始要進行編碼規範化,除明晰符號位、階碼值、補碼值外,我們還要對小數點進行初始化,為了最大範圍地表達出我們的數,所以我們預設該數的小數點在1後,即尾數的最高位a[22]必須是1,在規範化的過程中,小數點右移階碼要減1,小數點左移階碼要加1。

好了以上就是IEEE754標準。

3樓:overmind1980

IEEE 754: Standard for Binary Floating-Point Arithmetic

IEEE754標準單精度(32位)/雙精度(64位)浮點數解碼

IEEE754中真正的指數值e範圍為什麼是 126 127?

Ehco 在IEEE754標準中進行了單精度浮點數 float 和雙精度數浮點數 double 的定義。float有32bit,double有64bit。它們的構成包括符號位 指數字和尾數字。這些位的構成如下 種類 符號位 指數字 尾數字 float 第31位 佔1bit 第30 23位 佔8bit...

32位ieee 754的階碼偏移量為何用127 而不是128

袁老師說,全0和全1有特殊用途,所以規格化階碼的表示範圍是0000 0001 1111 1110 1 254 如果偏置是128,則階碼最大是126 254 128 偏置是126,階碼最大是127,這樣表示的範圍就更大些了。可是,我想那偏置是125豈不是表示範圍更大些?難道是說寧願犧牲精度也要增大表示...

能否將1Gu盤格式化為fat12格式?怎樣做?

已登出 因為fat12的檔案分配表就9扇區,每個記錄1.5位元組,所以最大就只能管理3070個簇,而不是樓上所謂的4096簇。不過1.44軟盤也就2880個扇區,足夠了。想要給1g盤搞fat12,就改MBR引數吧。MBR偏移13 d 位元組處是每簇扇區數,乙個位元組長。所以算下來最大能到383MB。...