進製換算

2021-07-07 01:36:41 字數 917 閱讀 4467

基礎測試程式設計題:

程式設計實現將任意的十進位制整數轉換成任意r進製數(r在2-16之間)

/*

程式設計實現將任意的十進位制整數轉換成任意r進製數(r在2-16之間)

*/#include #include #define max 1000

int main();//字元表

char ans[max];

printf("請輸入需要轉化成的進製數:");

scanf("%d", &r);

printf("請輸入需要轉化的十進位制數:");

scanf("%d", &num);

while (num)

ans[count] = '\0';//為得到的答案串新增字串結束符,避免錯誤。

len = strlen(ans);

for (i = 0; i < len; i++)

printf("\n");

return 0;

}

要做這道題,我們首先應該明白進製轉換到底是怎麼乙個過程。這裡主要講的是將10進製的數轉化為其他進製的數。

將其他進製的數轉化為10進製十分簡單(數字系統決定的)。比如我要將6進製的(12345)數轉化為10進製,只需要根據定義,得5+4*6+3*6^2+2*6^3+1*6^4=1865.那反向的運算我們應該怎麼去做的。還是得從這個式子中尋找線索。

我們發現,對於n進製的(abcde),都有10進製為e+d*n+c*n^2+b*n^3+a*n^4,從這個式子來看,其除以n的餘數即位n進製中的個位數。商為d+c*n+b*n^2+a*n^3,再除以n,餘數是十位數,以此類推。

於是我就搞了上面這個演算法。其中ch是字元表,題目要求最多為16進製制,所以為16個,20進製的話就要加20個。while迴圈內部本身就是在做我上述描述的演算法,其他部分就都很好理解了。

進製轉換演算法

寫乙個函式char fun int value,int radix 輸入為乙個整數和乙個代表進製的整數,如71,7。71表示要轉化的數,7代表要轉化成7進製數。輸出乙個字串指標,字串為整數value轉化為radix進製後的數字序列。小於10進製數用0 9表示,10進製 35進製用a z表示。例如71...

進製轉換演算法

int num 745 需要轉換的數 string value num int temp 0 while value.length 0 system.out.println temp m 10演算法是比較簡單的,轉成字串之後,依次取出每個字元,乘以相對應的權重再求和即可。int num 485 需要...

進製轉換 演算法筆記

進製轉換步驟 將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...