浮點數理解

2022-09-22 03:15:10 字數 2296 閱讀 9821

任何乙個數均可以表示為:(n)r=±s×r±e

r:基值。計算機中常用的r可取2、8、10、16等。

s:尾數。代表數n的有效數字。計算機中一般表示為純小數。

e:階碼。代表數n的小數點的實際位置。一般表示為純整數。

一、定點小數

定點小數:約定計算機中所有資料的小數點位置均是相同的,而且是固定不變的,即階碼e的取值固定不變的機器數表示。

定點小數的兩種表示方法:

e=0,表示純小數,小數點在符號位與最高數值位之間。  e=n,表示純整數,小數點在最低有效數值位之後

【例】(123.45)10=12345×10-2=0.12345×103

(11011.101)2=11011101×2-3=0.11011101×105

二、浮點小數

浮點小數的小數點位置不是固定,而是可以浮動的,即e的取值可變,因此在機器中必須將e表示出來,浮點小數的表示如圖

尾數的位數決定了資料表示的精度,為帶符號的純小數。

階碼的位數決定了資料表示的範圍,為帶符號的純整數。

三、浮點數的規範化

(1)如何盡可能多地保留有效數字?

(2)如何保證浮點表示地唯一?

規格化思想:盡可能去掉尾數中的前置「0」,盡量使小數點後第一位為「1」。對於二進位制數,就是要滿足:1/2≤|s|<1

【例】0.001001×25的規格化

0.001001×25規格化表示為:0.100100×23

四、原碼規格化

若[s]原=sf.s1s2..sn,規格化標誌是:s1=1,即:[s]原=0.1xx...x 或 [s]原=1.1xx...x。

【例】[s]原=0.1101101 → [s]原=1.1101101  是規格化數

[s]原=0.0101101 → [s]原=1.0101101  不是規格化數

五、補碼規格化

若[s]補=sf.s1s2..sn,規格化標誌是:sf⊙s1=1,即:[s]補=0.1xx...x 或 [s]補=1.0xx...x。⊙指異或運算 

【例】[s]補=0.1101101 → [s]補=1.0101101  是規格化數

[s]原=0.0101101 → [s]原=1.1101101  不是規格化數

六、ieee 754浮點數標準

ieee 754標準在表示浮點數時,每個浮點數均由三部分組成:符號位s,指數部分e和尾數部分m。

32位單精度浮點數表示格式如圖

s:數符,0表示「+」,1表示「-」。

e:指數,即階碼部分。其中包括1位階符和7位數值。採用移127碼表示,移碼值為127。即階碼=127+實際指數值

m:共23位。由於尾數採用規格化表示,所以ieee 754 標準約定在小數點左部有一位隱含位為1,從而使尾數的實際有效位為24位,即尾數的有效值為1.m。

【例】利用ieee 754標準將數176.0625表示為單精度浮點數

解析: ①將十進位制轉換二進位制數:(176.0625)10=(10110000.0001)2

②對二進位制數進行規格化處理:10110000.0001=1.01100000001×27

③將小數部分擴充套件為單精度浮點數所規定的23位尾數為0110,0000,0010,0000,0000,000

④求階碼,指數為7位數值,偏移量為127。e=7+127=134=(10000110)移

最後176.0625的單精度浮點數表示為:0 10000110 0110,0000,0010,0000,0000,000

浮點數的理解

1 浮點數的表示 ieee 754 目前絕大多數語言都支援該文件,c語言裡面的float,double就為該文件的32位和64位浮點。1 單精度浮點值 float型別的為32位儲存方式,從高位到低位的儲存分別為31位是數符位,30 23位是階碼位e,在儲存時真實階碼e要加上7f h 為e,後面的22...

理解浮點數儲存

b 整體呈現 b size medium 二進位制浮點數是以符號數值表示法格式儲存,將最高效位元指定為符號位元 sign bit 指數部份 即次高效的e位元,為浮點數中經指數偏差 exponent bias 處理過後的指數 小數部份 即剩下的f位元,為有效位數 significand 減掉有效位數本...

浮點數的理解

浮點表數法 的標準是這樣,假如是 single float 單精度浮點數為例,是4位元組32位的 儲存空間 第一位 bit 正負號 比如1代表 正數,0代表負數 後面八位是,2 x 次方中的 x 最後二十三位,表示 精度數值 這23位,分成整數和小數部分,x1.x2 2 y1 y2 設 y2就是 0...