十進(jìn)制轉(zhuǎn)二進(jìn)制的整數(shù)部分容易理解拟烫,但小數(shù)部分如何轉(zhuǎn)換呢?
這里復(fù)習(xí)下進(jìn)位計(jì)數(shù)制表示法:
比如 (11.5) 10 = (1011.1)2
(11.5) 10 = 1* 101 + 1* 100 + 5* 10-1
(1011.1)2 = 1* 23 + 0* 22 + 1* 21 + 1* 20+1* 2-1
所以對于任意十進(jìn)制數(shù)的小數(shù)部分F轉(zhuǎn)換為二進(jìn)制都可以寫為:
F = a1* 2-1 + a2* 2-2 + a3* 2-3 +... an*2-n
(基數(shù)為2邻遏,所以a1 到 an要么為0 要么為1)
比如 0.8 = a1* 2-1 + a2* 2-2 + a3* 2-3 +... an*2-n ,可以理解為0.8 包含了a1個(gè)2-1以及a2個(gè)2-2 ...。 求a1 a2... an
因?yàn)?0.8 / 2-1 = 1.6 所以a1 可取1.6 葡兑。 又由于基數(shù)為2, a1 到 an要么為0 要么為1镀娶。 所以a1 只能取1立膛。
得出
F - a1* 2-1 = a2* 2-2 + a3* 2-3 +... an2-n
F - a1 2-1 = F - 1 * 2-1 = 0.6 * 2-1
0.6 * 2-1 = a2* 2-2 + a3* 2-3 +... an*2-n
因?yàn)?0.6 * 2-1/ 2-2 = 1.2 ,按照上面的方式得出a2 = 1
以此類推 得出a3 = 0梯码,a4 = 0 宝泵,a5 = 1,a6 = 1轩娶,a7 = 0儿奶,a8 = 0,a9 = 1...
0.8 = 1* 2-1 + 1* 2-2 + 0* 2-3 + 0* 2-4+ 1* 2-5...
由a1 a2... an表示成二進(jìn)制 0.1100110011001100...無限循環(huán)下去鳄抒。
計(jì)算機(jī)中小數(shù)又稱為浮點(diǎn)數(shù)闯捎,分為尾數(shù)和指數(shù)部分搅窿,上面所求的就是尾數(shù)部分,由于計(jì)算機(jī)給尾數(shù)和指數(shù)所分配的位數(shù)有限隙券,所以無法精確表示男应。