十進制小數的二進制,八進制,十六進制轉換方法

十進制小數的二進制,八進制,十六進制轉換方法函數


十進制小數轉換爲二進制小數 方法:「乘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


完。

參照:

http://my.oschina.net/dubenju/blog/500830

相關文章
相關標籤/搜索