二級制小數分為兩大類:1、定點數;2、浮點數。
定點數:
(1)小數點位置固定不變的數。
(2)定點數有定點整數和定點小數。
(定點整數:小數部分為0;定點小數:整數部分為0)。
定點整數的表示:
規定小數點在最低有效位的後面。
(若為8位來表示,最高位用來表示正負號(即0與1 ),剩下7位為二進位制數,小數點在最低位的右邊)。
定點小數的表示:
規定小數點在符號位與最高數值位之間。
(若用乙個位元組表示,最高位為符號位,其他位為二進位制數字)
例:將二進位制-0.1001001用2個位元組儲存為定點小數。
解:(第乙個1表示為負號)
實數可以表示:
乙個純小數和乙個乘冪之積的形式。
浮點數
小數點位置變化的數稱為浮點數。
浮點數指數表示:
指數稱為「階碼」,小數稱為「尾數」。
二進位制數的階碼和尾數都用二進位制數表示。
任意二進位制浮點數公式:
其中,m為尾數(純小數部分),整數e為階碼,m與e都帶符號。
例:規定用乙個位元組來記錄、儲存浮點數,階符為1位,階碼為2位,尾符為1位,尾數為4位。那麼,二進位制數10.101儲存為浮點數時,尾數由於儲存空間不夠,導致最右邊的1位資料「1」丟失。
這個現象稱為截斷誤差或捨入誤差。
二進位制浮點數儲存時,如果尾數儲存空間不夠,會導致產生截斷誤差。可以使用較長的尾數域,減少截斷誤差。
截斷誤差的另外乙個**是無窮展開式,也就是在進行數值轉換時發生的。
例:十進位制數0.8轉換為二進位制時為:0.11001100…
例:十進位制數1/10轉換為二進位制數時,也會遇到無窮展開式問題。
二進位制小數
要理解這道題,首先要知道什麼樣的小數可以轉化為二進位制形式,怎樣的小數不能被轉化為二進位制形式,自己測試幾組資料發現 1.可以轉化為二進位制的小數在有限次的乘二之後,小數部分會變零。舉個例子 0.625 2 1.25 1.25 2 2.5 2.5 2 5.0 5.0的小數部分變成了 0 2.不能轉化...
小數 二進位制
首先,給出乙個任意實數,整數部分用普通的二進位制便可以表示,這裡只說小數部分如何表示 例如0.6 文字描述該過程如下 將該數字乘以2,取出整數部分作為二進位制表示的第1位 然後再將小數部分乘以2,將得到的整數部分作為二進位制表示的第2位 以此類推,知道小數部分為0。特殊情況 小數部分出現迴圈,無法停...
二進位制小數
題目描述 有乙個介於0和1之間的實數,型別為double,返回它的二進位制表示。如果該數字無法精確地用32位以內的二進位制表示,返回 error 給定乙個double num,表示0到1的實數,請返回乙個string,代表該數的二進位制表示或者 error 測試樣例 0.625 返回 0.101 c...