1樓:
最常用的32位規格化浮點數的表示範圍是:
前提條件:階碼用移碼錶示,尾數用補碼錶示,每1位是符號位,階碼佔8位,尾數佔23位
可表示的最大正數:(1-2^-23)*2^127最小正數:2^-129
最大負數:-2^-129
最小負數:-2^127
2樓:匿名使用者
呵呵,不同的編譯環境下,浮點數的範圍是不同的
3樓:匿名使用者
目前多數系統都按照ieee-754標準來規定浮點數的儲存格式。ieee754規定,單精度浮點數用4位元組儲存,雙精度浮點數用8位元組儲存,分為三個部分:符號位、階碼和尾數。
階碼即指數,尾數即有效小數位數。單精度格式階碼佔8位,尾數佔24位,符號位1位,雙精度則為11位階碼,53位尾數和1位符號位,
顯然差別就出來了。即使都是4位元組儲存的單精度浮點數,還有不使用ieee754標準的,我記得字長32位的大型ibm系列機就是1位符號位,24位尾數,7位階碼,基數16,而不是2,與此標準不同。所以浮點數的表示範圍依賴的因素較多較複雜,主要取決於表示一個浮點數所用的位元組數和階碼的大小與長度。
說法不一樣,但應該都是有根據的。
浮點數所能表示的數值範圍和精度取決於什麼
4樓:smile灬微光丶
浮點數所能表示的數值範圍和精度取決於階碼和尾數。
階碼:採用指數的實際值加上固定的偏移值的辦法表示浮點數的指數,好處是可以用長度為 個位元的無符號整數來表示所有的指數取值,這使得兩個浮點數的指數大小的比較更為容易,實際上可以按照字典序比較兩個浮點表示的大小。這種移碼錶示的指數部分,中文稱作階碼。
定點數(即尾數):定點數是指計算機中採用的一種數的表示方法。參與運算的數的小數點位置固定不變。
ieee標準從邏輯上採用一個三元組來表示一個數n,它規定基數為2,符號位s用0和1分別表示正和負,尾數m用原碼錶示,階碼e用移碼錶示。
根據浮點數的規格化方法,尾數域的最高有效位總是1,由此,該標準約定這一位不予儲存,而是認為隱藏在小數點的左邊,因此,尾數域所表示的值是1.m(實際儲存的是m),這樣可使尾數的表示範圍比實際儲存多一位。
擴充套件資料
為了充分利用尾數的二進位制編碼表示更多的有效數字,為了使浮點保持更高的精度以及有統一的表示形式,對浮點數規格化,將尾數的絕對值限定在一個規定的數值範圍內。
規格化的浮點數尾數的絕對值應在1/2~1之間。
尾數m使用補碼錶示,當m>=0時,規格化尾數的形式必須為:m=0.1***x...x(1+n位)
當m<0時,規格化尾數的形式必須為:m=1.0***x...x(1+n位)
尾數的最小負值為-1,最大負值為-(1/2+2^-n)
尾數的最小正值為+1/2,尾數的最大正值為+(1-2^-n)
5樓:
浮點數的精度取決於尾數的位數,數值的範圍取決於階碼的位數,在浮點數總位數不變的情況下,階碼位數越多,位數位數就越少。即表示的範圍越大,精度就會越差。
6樓:向天致信
浮點數所能表示的範圍取決於階碼;精度取決於尾數。
浮點數是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學計數法。
7樓:匿名使用者
範圍取決於階碼,精度取決於尾數
二進位制浮點數與十進位制浮點數的區別?為什麼PLC裡要將十進位制浮點數轉換成二進位制浮點數後再計算啊
plc只能處理二進位制數,電訊號裡面只有0和1,所以不可能處理十進位制 fx3u plc二進位制浮點數與十進位制浮點數的區別?plc內只處理二進位制。人們不習慣二進位制,可以講二進位制轉換為十進位制,再送到外部裝置。二進位制浮點數用於浮點數運算 十進位制浮點數用於監控 浮點數轉換為二進位制,小數部分...
c語言中怎樣判斷輸入的是整數還是浮點數
先存成字串,判斷有沒有小數點,再從字串格式化成整型或浮點型。include include include char strchr const char str,int ch int main int argc,char argv else system pause return 0 scanf s...
C語言 呼叫自定義交換函式,完成浮點數從小到大排列
正如樓上所說,這個方法是很多的。我舉一個例子 include void swap double x,double y 定義交換函式 main for i 0 i 3 i 氣泡排序for j 0 j 3 i j if st j st j 1 swap st j st j 1 for i 0 i 5 i...