兩種情況:
(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...