復習MySQL的過程中,看到DECIMAL這個基本數(shù)據(jù)類型,忽然回想起了以前在學習微處理器時遇到過的定點數(shù)和浮點數(shù)的概念,于是在這里做一下筆記。
在計算機出現(xiàn)之初,實數(shù)的存儲成了業(yè)界爭論的議題。而一開始,定點數(shù)的存儲形式率先被應用于實數(shù)的存儲。
什么是定點數(shù)? 如00.11和99.65這樣固定整數(shù)和小數(shù)位數(shù)的存儲形式,就是定點數(shù)存儲。
但是后來人們發(fā)現(xiàn)了定點數(shù)的缺點,其中很明顯的缺點是浪費存儲空間。
于是,浮點數(shù)存儲開始出現(xiàn)了,并且應用到今天的主流編程語言之中。
浮點,顧名思義就是小數(shù)點是浮動的,也就是說整數(shù)和小數(shù)部分是變化的。那怎么才能實現(xiàn)這種方式呢?
沒錯,就是“科學計數(shù)法”;
如二進制數(shù)111.0011,可以記作1.110011*2^2,很明顯,這里包含三部分: (1)尾數(shù) (2)階碼 (3)符號位(描述階碼的正負)
而按照IEEE的浮點型標準,目前浮點型有float(單精度32位)和double(雙精度64位)兩種形式。
對于float(32bits): (1)尾數(shù)(23位),因為整數(shù)位一定為1,所以省略,所以實際上可以表示24位有效數(shù)字; (2)階碼(8位); (3)符號位(1位);
對于double(64bits): (1)尾數(shù)(52位),實為53位有效數(shù)字; (2)階碼(11位); (3)符號位(1位);
好了,原本要將MYSQL的定點數(shù)(DECIMAL)的,卻詳細介紹了浮點數(shù),但是浮點數(shù)理解了,定點數(shù)就不在話下了。
新聞熱點
疑難解答