淺談十進(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)容了,希望能給大家一個參考,也希望大家多多支持我們。
欄 目:C語言
下一篇:C語言動態(tài)數(shù)組的使用實(shí)現(xiàn)代碼
本文標(biāo)題:淺談十進(jìn)制小數(shù)和二進(jìn)制小數(shù)之間的轉(zhuǎn)換
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1844.html
您可能感興趣的文章
- 01-10淺談C/C++中的static與extern關(guān)鍵字的使用詳解
- 01-10淺談內(nèi)聯(lián)函數(shù)與宏定義的區(qū)別詳解
- 01-10淺談C++中的string 類型占幾個字節(jié)
- 01-10淺談關(guān)于指針作為參數(shù)并改變它的值的問題
- 01-10淺談C#互操作的內(nèi)存溢出問題
- 01-10C++ 十進(jìn)制轉(zhuǎn)換為二進(jìn)制的實(shí)例代碼
- 01-10純C語言:遞歸二進(jìn)制轉(zhuǎn)十進(jìn)制源碼分享
- 01-10C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 01-10c++實(shí)現(xiàn)十進(jìn)制轉(zhuǎn)換成16進(jìn)制示例
- 01-10淺談C語言中的強(qiáng)符號、弱符號、強(qiáng)引用和弱引用


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10C#中split用法實(shí)例總結(jié)