演算法筆記(六)進製轉換

2021-08-20 11:21:23 字數 1074 閱讀 2217

兩種情況:

(1)將p進製 x 轉換為q進製 資料

要分兩步走:

1>將p進製數在轉化為10進製數y:

十進位制數形式為: y = d1d2d3d4d5d6d7............dn

同可以寫為: y = d1*10^(n-1) + d2*10^(n-2)+............+dn-1*10 + dn;

p進製數x為a1a2a3a4a5a6.........an,類似於十進位制轉化,

同可以寫為: y = a1*p^(n-1) + a2*p^(n-2) + .................an-1*p + an;

**表示:

int y=0, product = 1;

while(x!=0)

2>十進位制數y 轉化為q進製數x

這個轉化相對簡單點,利用「除基取餘法」,基即為q,對y不斷的取餘

如: 十進位制11 轉化為2進製

第一次: 11%2, 餘數為1,得5

第二次: 5%2, 餘數為1,得2

第三次: 2%2, 餘數為0,得1

第四次: 1%2, 餘數為1,得0

**表示:

int z[40], num=0;

dowhile(y != 0);          //y不為0時,一直迴圈

題述:輸入兩個非負十進位制a+b(<=2^30-1),轉化為d進製數;

輸入格式:在一行輸入a,b,d

答案:#include

int main()

while(sum!=0);

for(int i=num-1;i>=0; i-- )

return 0;

}我的答案:

#include

int main()

while(y != 0);

printf("總共位數為:%d\n",num);

for(int i=0; i

printf("\n列印結束!\n");

《演算法筆記》C 進製轉換

對於乙個p進製的數字,若要轉化為q進製,則需要兩部 第一步 將p進製的數字轉化為10進製 y a1 p n 1 a2 p n 2 an 1p an 如何實現?int x,p int y 0,pro 1 p表示進製 while x 0 將 十進位制轉換為q進製,除基取餘法 例如11轉換為2進製 首先1...

進製轉換 演算法筆記

進製轉換步驟 將p進製轉換為q進製,需要分為兩步 int y 0,product 1 p進製x轉化為10進製的y while x 0 十進位制y轉化為q進製z int z 40 num 0 陣列z存放q的進製數y的每一位,num為位數 dowhile y 0 這樣陣列從高位z num 1 到低位nu...

演算法筆記 Problem C 進製轉換

題目描述將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。輸入多組資料,每行為乙個長度不超過30位的十進位製非負整數。注意是10進製數字的個數可能有30個,而非30bits的整數 輸出每行輸出對應的二進位制數。樣例輸入985 2111126樣例輸出1111011001 1101001...