C 語言進(jìn)制之間的轉(zhuǎn)換
二進(jìn)制、八進(jìn)制和十六進(jìn)制向十進(jìn)制轉(zhuǎn)換都是非常容易的,就是“按權(quán)相加”。
所謂“權(quán)”,也即“位權(quán)”。例如,十進(jìn)制第1位的位權(quán)為100=1,第2位的位權(quán)為101=10,第3位的位權(quán)為102=100;而二進(jìn)制第1位的位權(quán)為20=1,第2位的位權(quán)為21=2,第3位的位權(quán)為22=4。設(shè)數(shù)字所采用的進(jìn)制為N(基數(shù)也是N),那么第 i 位的位權(quán)為 N(i-1)。
不同進(jìn)制轉(zhuǎn)換為十進(jìn)制舉例:
二進(jìn)制:1001 = 1×23 + 0×22+ 0×21 + 1×20 = 8 + 0 + 0 + 1 = 9
二進(jìn)制:101.1001 = 1×22 + 0×21+ 1×20+ 1×2-1+ 0×2-2 + 0×2-3 + 1×2-4= 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625
八進(jìn)制:0302 = 3×82 + 0×81+ 2×80 = 192 + 0 + 2 = 194
八進(jìn)制:0302.46 = 3×82 + 0×81 + 2×80 + 4×8-1 + 6×8-2 = 192 + 0 + 2 + 0.5 + 0.09375= 194.59375
十六進(jìn)制:0Xea7 = 14×162 + 10×161 + 7×160= 3751
十進(jìn)制轉(zhuǎn)換為二進(jìn)制——輾除法
上節(jié)的表格中給出了簡單的十進(jìn)制和二進(jìn)制的轉(zhuǎn)換關(guān)系,要想獲得更多的轉(zhuǎn)換關(guān)系,可以使用輾除法。輾除法也就是“除模取余”法。除模取余就是將一個(gè)幾進(jìn)制的數(shù)轉(zhuǎn)化成另一個(gè)進(jìn)制時(shí), 另一個(gè)進(jìn)制的基數(shù)就是模,用將要轉(zhuǎn)化的進(jìn)制數(shù)除以模,取它的余數(shù)。
下圖以十進(jìn)制的“19”轉(zhuǎn)換為二進(jìn)制為例進(jìn)行講解:
如圖所示,以2為除數(shù),一直相除下去,直到商為0,余數(shù)則為求得的二進(jìn)制數(shù)。
注意:余數(shù)要倒序排列,也就是說,最先求得的余數(shù)排在二進(jìn)制的最后面,最后求得的余數(shù)排在二進(jìn)制的最前面。上面的例子中,最后求得的二進(jìn)制數(shù)為 10011。
雖然其他進(jìn)制也可以按照輾除法來轉(zhuǎn)換,但是比較麻煩,下面介紹更簡單的方法。
二進(jìn)制和八進(jìn)制的轉(zhuǎn)換
二進(jìn)制向八進(jìn)制的轉(zhuǎn)換是每三位二進(jìn)制數(shù)轉(zhuǎn)換為一位八進(jìn)制數(shù),運(yùn)算的順序是從低位向高位依次進(jìn)行,高位不足三位用零補(bǔ)充。以二進(jìn)制“1011101”為例,如下圖所示:
轉(zhuǎn)換的結(jié)果為:1011101 = 0135
八進(jìn)制向二進(jìn)制轉(zhuǎn)換的思路是八進(jìn)制的一位轉(zhuǎn)換為二進(jìn)制的三位,運(yùn)算的順序是從低位向高位依次進(jìn)行。同樣以八進(jìn)制“0135”為例,如下圖所示:
轉(zhuǎn)換的結(jié)果為:0135 = 1011101
二進(jìn)制和十六進(jìn)制的轉(zhuǎn)換
二進(jìn)制向十六進(jìn)制轉(zhuǎn)換時(shí),四位轉(zhuǎn)換成十六進(jìn)制的一位,運(yùn)算的順序是從低位向高位依次進(jìn)行,高位不足四位用零補(bǔ)。以“1110011”轉(zhuǎn)換成十六進(jìn)制為例,如下圖所示:
轉(zhuǎn)換的結(jié)果為:1001011101 = 0X25D
十六進(jìn)制向二進(jìn)制轉(zhuǎn)換,就是把十六進(jìn)制的一位轉(zhuǎn)換成二進(jìn)制的四位,注意運(yùn)算的順序是從低位向高位依次進(jìn)行。同樣以十六進(jìn)制“0X25D”為例,如下圖所示:
以上就是對(duì) C語言進(jìn)制直接轉(zhuǎn)化做的一個(gè)資料整理,學(xué)習(xí)進(jìn)制轉(zhuǎn)換的朋友可以參考下
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)式函數(shù)庫
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)數(shù)怎么表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘


閱讀排行
本欄相關(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語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)
- 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ī)閱讀
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 04-02jquery與jsp,用jquery