计组之数据运算:9、浮点数的表示
9、浮點數(shù)的表示
- 思維導(dǎo)圖
- 定點數(shù)存在的問題:(浮點數(shù)產(chǎn)生的原因)
- 浮點數(shù)的表示格式
- 浮點數(shù)與科學(xué)計數(shù)法的比較
- 浮點數(shù)的格式
- 浮點數(shù)與真值的轉(zhuǎn)化
- 存在的問題
- 規(guī)格化
- 科學(xué)計數(shù)法的規(guī)格化
- 浮點數(shù)的規(guī)格化方法
- 浮點數(shù)規(guī)格化特點
- 倆個規(guī)格化的浮點數(shù)的加減操作:
- 待解決問題:
思維導(dǎo)圖
定點數(shù)存在的問題:(浮點數(shù)產(chǎn)生的原因)
當(dāng)我們要存儲一個數(shù)值時,需要考慮到數(shù)值的大小問題;例如,當(dāng)存儲一個156時用char型即可,存儲8500時,用short型即可;但是當(dāng)一個數(shù)值非常非常的大時,要怎么進行存儲呢?例如我們要存儲2億億億億這么大一個數(shù),采用定點數(shù)的方式存儲就會產(chǎn)生問題。因此產(chǎn)生了浮點數(shù)。(浮點數(shù)的表示類似與科學(xué)計數(shù)法)
浮點數(shù)的表示格式
浮點數(shù)與科學(xué)計數(shù)法的比較
先來看一下十進制的科學(xué)計數(shù)法
+3.026*10^11是十進制的科學(xué)計數(shù)法,他可以拆分成5部分:
1、數(shù)值的符號:即第一個正號,又稱數(shù)符
2、數(shù)值的大小:3.026,又稱尾數(shù)
3、階碼的數(shù)值:11
4、階碼的底數(shù):10(對于科學(xué)計數(shù)法為10,對于浮點數(shù)來說就為2,一般沒有特別說明是默認的,所以在存儲表示中不需要存儲)
5、階數(shù)的符號:即11前面隱含的正號,又稱階符
所以,在對科學(xué)計數(shù)法進行存儲時,需要存儲的有四部分:階符、階碼的數(shù)值、數(shù)符、尾數(shù)
類比與科學(xué)計數(shù)法,浮點數(shù)的存儲與其不同之處就在于階碼的底數(shù),而在浮點數(shù)存儲中,默認為2^i,無特別說明為2
浮點數(shù)的格式
階碼:反映了浮點數(shù)的表示范圍及小數(shù)點的實際位置
尾數(shù)的數(shù)值部分位數(shù):反映了浮點數(shù)的精度
浮點數(shù)與真值的轉(zhuǎn)化
存在的問題
對于上圖中求真值b的過程中,無法用1B的存儲空間進行存儲(需要9位),這樣會舍棄最低位的1,結(jié)果會造成精度的丟失。所以,我們?nèi)绾卫帽M可能小的存儲空間存儲盡可能大的數(shù)值呢?因此產(chǎn)生了規(guī)格化的概念。
規(guī)格化
科學(xué)計數(shù)法的規(guī)格化
我們都知道,科學(xué)計數(shù)法要求小數(shù)點在數(shù)值的第一個有效位的后面;例如,我們表示235000,會寫成2.35x105而不會寫成235x103;這樣的規(guī)定就是科學(xué)計數(shù)法的規(guī)格化
浮點數(shù)的規(guī)格化方法
類比與科學(xué)計數(shù)法的規(guī)格化,規(guī)定尾數(shù)的最高位數(shù)值必須是一個有效值。
eg:
對于上文提到的求b的真值的過程,我們可以通過左規(guī)操作使b規(guī)格化,結(jié)果是可以用1B的存儲空間進行存儲(8位,上文中未左規(guī)9位)
浮點數(shù)規(guī)格化特點
倆個規(guī)格化的浮點數(shù)的加減操作:
階數(shù):補碼,位數(shù):原碼
a:00,010;00,0110
b:00,011;00,0101
1、求a,b真值
a:階數(shù):2,尾數(shù)6,真值:6x22
b:階數(shù):3,尾數(shù)5,真值:5x23
2、求a+b的值
1、求階差:011-010=001,階差為1
2、補階差:將階數(shù)小的與階數(shù)大的對齊,并進行移位保證a的數(shù)值不變
a:00,011;00,0011
3、尾數(shù)運算:0011+0101=1000
4、得出結(jié)果:a+b:00,011;00,1000
5、規(guī)格化:此結(jié)果以規(guī)格化;若非規(guī)格化則需要通過左規(guī)與右規(guī)進行規(guī)格化
待解決問題:
階碼、尾數(shù)用什么碼合適?用多少位合適?如何定義一個標(biāo)準(zhǔn)可以進行不同計算機浮點數(shù)的通訊?見下篇博客:IEEE754標(biāo)準(zhǔn)
總結(jié)
以上是生活随笔為你收集整理的计组之数据运算:9、浮点数的表示的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入理解C指针之三:指针和函数
- 下一篇: (计算机组成原理)408之外内容补充(非