浮點小數表示法:
所謂二進位的浮點小數表示法 (或是浮點數, floating point number) 簡單地講和我們十進位中常用的科學記號表示法是類似的, 十進位中我們用十的冪次 (power) 及 0 至 1 之間的小數來表示一個任意的實數, 例如:12345.6789 表示為 0.123456789 * 10^5。在二進位中我們一樣可以將一個二進位數字 1101110.11011 表示為 0.110111011011 * 2^7, 這樣子的表示法和定點表示法之間好像沒有什麼不同嘛!! 對!! 這兩個數值的大小當然是完全一樣的, 那
為什麼要用浮點表示法呢?? 請注意在定點小數表示法之中我們看到它的缺點是
絕對值太大的數字會被截斷 (正確的名稱是
溢位,overflow) 位數不夠多
無法表達大於範圍的數字,
絕對值太小的數 (例如:0.000000001) 也會被截斷 (正確的名稱是
無條件捨去,truncation) 只能表達
近似的值。
如果是這樣子的話,不知道你有沒有想過...
- 對於一個很大的數字 (例如 123456789012) 定點表示法保証小數點以後一定有固定的幾個位數來表示, (例如 123456789012.00000011) 可是這樣子的精確度對於大部份的應用來說是沒什麼意義的, 試想太陽到地球的距離多一公里少一公里真的有關係嗎?? 光速每秒鐘快一公尺又何妨??
- 對於一個很小的數字 (例如 0.0000000012) 來說定點表示法可能因為小數點後沒有足夠的位數來記錄而將其省略, 上面這個數字就變成 0 了。 如果你說水中含有 0.0000000012 莫耳的氰化鈉, 因為小數點後位數不足而把它當為 0, 這不太好吧!!
這時浮點數表示法就有它的妙用了, 以第一例中一個很大的數字而言: 浮點數由最重要的位數開始只保留一定的位數, 例如 123456789012.00000011 可用 .1234567890 * 10^12 來表示就夠了, 這個表達方法所記錄的數字和實際的數字會有誤差, 但是
百分比誤差不大。 以第二例而言: 0.0000000012 可用 0.12 * 10^(-8) 來表示, 不需要浪費許多位元記錄 "0", 只需記 12 以及 -8 即可精確地表達這個很小的數字。
舉例來說, 一種簡單的二進位浮點表示法可以一個位元記錄正負號, 七個位元二的補數記錄 2 的冪次, 24 個位元記錄小數, 共 32 位元, 如下圖:
若有一個以此種表示方法的二進位數值:
0 0001110 110000000000000000000000
代表十進位的 0.75 * 2^14 這個數字。注意:
和前面的定點小數表示法一樣, 浮點小數表示法在表達任意一個小數的時候, 也常常會有一些誤差, 而且實際所表示的數字的絕對值會小於或是等於原來希望表達的那個數字的絕對值。
Casinos Near Casinos Near Casino Village in WV - Mapyro
回覆刪除The following 당진 출장안마 are known 청주 출장샵 casinos found near Casino Village in 보령 출장마사지 WV. · 원주 출장안마 Hollywood Casino (West Virginia), 부산광역 출장샵 Hollywood Casino (West Virginia), Harrah's (West Virginia),