淺談十進(jìn)制小數(shù)和二進(jìn)制小數(shù)之間的轉(zhuǎn)換
一、二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)
由二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)的基本做法是,把二進(jìn)制數(shù)首先寫成加權(quán)系數(shù)展開式,然后按十進(jìn)制加法規(guī)則求和。這種做法稱為"按權(quán)相加"法。
二、十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)
十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)時,由于整數(shù)和小數(shù)的轉(zhuǎn)換方法不同,所以先將十進(jìn)制數(shù)的整數(shù)部分和小數(shù)部分分別轉(zhuǎn)換后,再加以合并。
1. 十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)
十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)采用"除2取余,逆序排列"法。具體做法是:用2去除十進(jìn)制整數(shù),可以得到一個商和余數(shù);再用2去除商,又會得到一個商和余數(shù),如此進(jìn)行,直到商為零時為止,然后把先得到的余數(shù)作為二進(jìn)制數(shù)的低位有效位,后得到的余數(shù)作為二進(jìn)制數(shù)的高位有效位,依次排列起來。
2.十進(jìn)制小數(shù)轉(zhuǎn)換為二進(jìn)制小數(shù)
十進(jìn)制小數(shù)轉(zhuǎn)換成二進(jìn)制小數(shù)采用"乘2取整,順序排列"法。具體做法是:用2乘十進(jìn)制小數(shù),可以得到積,將積的整數(shù)部分取出,再用2乘余下的小數(shù) 部分,又得到一個積,再將積的整數(shù)部分取出,如此進(jìn)行,直到積中的小數(shù)部分為零,或者達(dá)到所要求的精度為止。
然后把取出的整數(shù)部分按順序排列起來,先取的整數(shù)作為二進(jìn)制小數(shù)的高位有效位,后取的整數(shù)作為低位有效位。
例1109 (173.8125)10=( )2
解: 由[例1107]得(173)10=(10101101)2
由[例1108]得(0.8125)10=(0.1101)2
把整數(shù)部分和小數(shù)部分合并得: (173.8125)10=(10101101.1101)2
十進(jìn)制小數(shù)→→→→→二進(jìn)制小數(shù) 方法:“乘2取整”
對十進(jìn)制小數(shù)乘2得到的整數(shù)部分和小數(shù)部分,整數(shù)部分既是相應(yīng)的二進(jìn)制數(shù)碼,再用2乘小數(shù)部分(之前乘后得到新的小數(shù)部分),又得到整數(shù)和小數(shù)部分。
如此不斷重復(fù),直到小數(shù)部分為0或達(dá)到精度要求為止.第一次所得到為最高位,最后一次得到為最低位
如:0.25的二進(jìn)制
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.25的二進(jìn)制為 0.01 ( 第一次所得到為最高位,最后一次得到為最低位)
0.8125的二進(jìn)制
0.8125*2=1.625 取整是1
0.625*2=1.25 取整是1
0.25*2=0.5 取整是0
0.5*2=1.0 取整是1
即0.8125的二進(jìn)制是0.1101(第一次所得到為最高位,最后一次得到為最低位)
十進(jìn)制小數(shù)→→→→→八進(jìn)制小數(shù) 方法:“乘8取整”
0.71875)10 =(0.56)8
0.71875*8=5.75 取整5
0.75*8=6.0 取整6
即0.56
十進(jìn)制小數(shù)→→→→→十六進(jìn)制小數(shù)方法:“乘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
非十進(jìn)制數(shù)之間的轉(zhuǎn)換
(1)二進(jìn)制數(shù)與八進(jìn)制數(shù)之間的轉(zhuǎn)換
轉(zhuǎn)換方法是:以小數(shù)點(diǎn)為界,分別向左右每三位二進(jìn)制數(shù)合成一位八進(jìn)制數(shù),或每一位八進(jìn)制數(shù)展成三位二進(jìn)制數(shù),不足三位者補(bǔ)0。例如:
(423。45)8=(100 010 011.100 101)2
(1001001.1101)2=(001 001 001.110 100)2=(111.64)8
(2)二進(jìn)制與十六進(jìn)制轉(zhuǎn)換
轉(zhuǎn)換方法:以小數(shù)點(diǎn)為界,分別向左右每四位二進(jìn)制合成一位十六進(jìn)制數(shù),或每一位十六進(jìn)制數(shù)展成四位二進(jìn)制數(shù),不足四位者補(bǔ)0。例如:
(ABCD.EF)16=(1010 1011 1100 1101.1110 1111)2
(101101101001011.01101)2=(0101 1011 0100 1011.0110 1000)2=(5B4B.68)16
可以把二進(jìn)制作為中間的過渡使用。
以上這篇淺談十進(jìn)制小數(shù)和二進(jìn)制小數(shù)之間的轉(zhuǎn)換就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++保存HBITMAP為位圖文件的實(shí)現(xiàn)方法
這篇文章主要介紹了C++保存HBITMAP為位圖文件的實(shí)現(xiàn)方法,幫助大家更好的理解和使用c++,感興趣的朋友可以了解下2021-01-01