基礎問題 進製轉換

2021-10-11 20:59:02 字數 1133 閱讀 5862

進製轉換基礎問題

對乙個p進製的數要轉換成q進製,需要分為兩步:

1.將乙個p進製數x轉換為十進位制數y

2.將十進位制數轉換成q進製數

step1:

對乙個十進位制數y=d1d2…dn,可以寫成:

y=d110n-1+d210n-2+…+dn-110+dn;

同樣的,如果p進製數x為a1a2…an,那麼它寫成下面這個形式之後使用十進位制加法和乘法,就可以轉換為十進位制數y:

y=a1pn-1+a2pn-2+…+an-1p+an;

而這個公式可以很容易用迴圈進行實現:

int y=0;

int product=0;

while

(x!=0)

step2:將十進位制數轉化為q進製數z

採用「除基取餘法」。基:指將要轉換成的進製q,因此除基取餘的意思就是每次將待轉換數除以q,然後將得到的餘數作為低位儲存,而商則繼續除以q並進行上面的操作,最後當商==0時,將所有位從高到低輸出就可以得到z。

eg:將十進位制數11轉換為二進位制數:(d to b)
//十進位制轉二進位制

int z[40]

=null

;int count=0;

while

(x!=0)

for(

int i=count-

1;i>=

0;i++

)

練習題:pat b1022 :d進製的a+b

輸入兩個非負十進位制整數a和b(<=2^30-1^ )以及d(進製數),輸出a+b的d(1非常的簡單。

#include

;using

namespace std;

intmain()

sum = a + b;

while

(sum !=0)

for(

int i = count -

1; i >=

0; i--

)return1;

}

《演算法筆記》

基礎訓練 進製轉換 進製轉換

sample input 4 7440x80685 1sample output 0x40x70x2c 525957 問題鏈結 uva10473 base conversion 問題簡述 略 問題分析 這是乙個進製轉換問題。include intmain else return 0 學到的點 本題中...

進製轉換問題

基礎 進製轉換問題 easy time limit 1000ms memory limit 65536k total submit 271 accepted 153 description 若將乙個正整數n化為二進位制,在此二進位制數中,我們將數字1的個數多於數字0的個數的這類二進位制數稱為a類數,...

進製轉換問題

基礎 進製轉換問題 easy time limit 1000ms memory limit 65536k total submit 271 accepted 153 description 若將乙個正整數n化為二進位制,在此二進位制數中,我們將數字1的個數多於數字0的個數的這類二進位制數稱為a類數,...