十進位制轉二進位制(C )

2021-08-21 18:53:39 字數 523 閱讀 1306

相信大家應該都知道,十進位制轉k進製的方法常用的就是除k取餘的方法,這裡針對這個方法,給出了c++的**。需要注意的是,除二取餘的方法,對於餘數的選取是從後往前取的,所以在**中,也要解決這個問題才行。

模仿不停地除2的過程,每次除2之後用 % 取餘數i;用 / 作為下一次除2的被除數temp;j初始化為1,每次除了2之後,j = j*10。最終輸出的結果result在每次除2的迭代中,result = i*j + result;這個從後往前取餘數的方法就是不斷地result = i*j + result這樣,不需要使用陣列等方式逆序取了。

同時,也要考慮到十進位制的負數如何轉化,這裡就是while(temp)來解決的。在while語句中,括號內的值只要不是0就為真,這樣就包含了負數的問題。

int dectobin(int dec)

return result;

}

這個方法,可以推廣到十進位制轉k進製,需要更改的地方就是 %j 和 /j 而已。以這種方式逆序取餘數還是很特別的,所以寫篇部落格mark一下:)

十進位制轉二進位制(C

十進位制轉換二進位制其實不是個複雜的問題,我們首先搞清楚原理 整數部分 如果不是0,不斷除2,直到除到1為止,得到的餘數最後逆向排列輸出 如果是0,直接輸出 小數部分 小數部分m非0,則不斷乘2,如果2 m超過1,則輸出1,m 2 m 1 如果2 m不超過1,m 2 m 由於很多小數是無法完全轉換為...

二進位制轉十進位制(C )

輸入八位二進位制資料轉成十進位制 思想 逐位讀入輸入的八位二進位制,判斷該位是否為 1 若為1,則該位值為2的 i 次方 該位為第 i 位 每位對應值累加結果為所求十進位制 輸入11011010,讀入第乙個資料為1,第七位 從右往左,0到7 對應值為2的7次方即128 第二個資料為1,第六位,對應值...

二進位制轉十進位制

二進位制轉十進位制方法很多,如字元陣列,指標法等 下面用字串函式的方法實現 二進位制轉十進位制 主要用 到 string函式性質及pow求乙個數的n次方的函式過載 by adengou 2010.08.04 win7 dev c 5.0 vs 2010 通過 include include incl...