十進制小數的二進制,八進制,十六進制轉換方法函數
十進制小數轉換爲二進制小數 方法:「乘2取整」spa
對十進制小數乘2獲得的整數部分和小數部分,整數部分既是相應的二進制數碼,再用2乘小數部分(以前乘後獲得新的小數部分),又獲得整數和小數部分..net
如此不斷重複,直到小數部分爲0或達到精度要求爲止。第一次所獲得爲最高位,最後一次獲得爲最低位。blog
如:0.25的二進制get
0.25*2=0.5 取整是0io
0.5*2=1.0 取整是1循環
即0.25的二進制爲 0.01 ( 第一次所獲得爲最高位,最後一次獲得爲最低位)二進制
0.8125的二進制方法
0.8125*2=1.625 取整是1co
0.625*2=1.25 取整是1
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.8125的二進制是0.1101(第一次所獲得爲最高位,最後一次獲得爲最低位)
若是小數部很難爲0時,則根據要求精度取近似值。
好比:0.2的二進制
0.2*2=0.4 取整是0
0.4*2=0.8 取整是0
0.8*2=1.6 取整是1
0.6*2=1.2 取整是1
0.2*2=0.4 取整是0
即0.2的二進制是0.00110011。。。成無限循環小數了。
十進制小數轉換爲八進制小數 方法:「乘8取整」
0.71875)10 =(0.56)8
0.71875*8=5.75 取整5
0.75*8=6.0 取整6
即0.56
十進制小數轉換爲十六進制小數方法:「乘16取整」例如:
(0.142578125)10=(0.248)16
0.142578125*16=2.28125 取整2
0.28125*16=4.5 取整4
0.5*16=8.0 取整8
即0.248
寫個純十進制小數轉換十六進制的函數:
非十進制數之間的轉換
(1)二進制數與八進制數之間的轉換
轉換方法是:以小數點爲界,分別向左右每三位二進制數合成一位八進制數,或每一位八進制數展成三位二進制數,不足三位者補0。例如:
(423。45)8=(100 010 011.100 101)2
(1001001.1101)2=(001 001 001.110 100)2=(111.64)8
(2)二進制與十六進制轉換
轉換方法:以小數點爲界,分別向左右每四位二進制合成一位十六進制數,或每一位十六進制數展成四位二進制數,不足四位者補0。例如:
(ABCD。EF)16=(1010 1011 1100 1101.1110 1111)2
(101101101001011.01101)2=(0101 1011 0100 1011.0110 1000)2=(5B4B.68)16
完。
參照: