將十進位制數字轉換為二進位制數字(棧的應用)

2021-09-24 20:41:12 字數 472 閱讀 6573

1. 問題描述:

編寫乙個演算法,將乙個非負十進位制數字n轉換為二進位制數字

2. 思路分析:

① 十進位制數字轉換為其他進製的數字可以使用輾轉相除法,直到最後n == 0結束,對於這道題目是轉換為二進位制數字,結合輾轉相除法在迴圈中我們每次先求解出n % 2的結果,然後將n除以2,因為每一次我們計算出的結果是從低位開始的,所以需要借助於棧來儲存n % 2的結果,等到n / 2 == 0的時候結束,那麼就可以彈出棧中儲存的結果,彈出的結果是從高位開始的,符合結果

② 棧我們可以使用c++標準模組板庫中的stack

3. 下面是具體的**:

#include#includeusing namespace std;

int convert(int n)

//彈出相應的元素

while(!res.empty())

} int main(void)

將十進位制轉換為二進位制

問題 將任一十進位制整數轉換為二進位制形式。方法一分析 將十進位制轉換為二進位制的方法很多,本方法利用c語言能夠對位進行操作的特點。對於c語言來說,乙個整數在計算機內就是以二進位制形式儲存的,所以沒有必要再將乙個整數經過一系列運算轉換為二進位制形式,只要將整數在記憶體中的二進位制表示輸出即可。源程式...

十進位制 轉換為 二進位制

聽說優酷前端面試有問進製數轉換的,甚至是負正整數轉換為二進位制,那就索性一次整個明白 正整數轉二進位制 負整數轉二進位制 小數轉二進位制 1 正整數轉成二進位制。口訣 除二取餘,倒序排列,高位補零。42 除以2得到的餘數 右邊 為010101,然後倒著排一下就是取到的二進位制了 如下圖 計算機內部表...

將十進位制數轉換為二進位制數和十六進製制數

題目 將十進位制數轉換為二進位制數和十六進製制數 stack的先進後出原則,符合十進位制轉二進位制的轉換規則。因此在解題時考慮使用stack。同時使用string進行結果儲存。注意 1.十六進製制數要在開頭新增0x。2.string的末尾要加 0 string get2string long num...