由於冒傻氣 沒注意到有26個英文本母,所以設邊界條件時設成了2<=scale<=34,這點請見諒。
這個程式的開發緣由是當時正在學習進製轉換,學到了除n取餘法,所以就試著寫了個程式模擬了這個過程。
類似的程式網上有很多,演算法比較簡單,這裡只作簡單說明,如十進位制轉二進位制,則不斷將剩餘的數字除2,直到商為0,此時將所有餘數倒序排列,即是二進位制的表示法。
6/2=3…0
3/2=1…1
1/2=0…1
所以十進位制6即為二進位制110。
在程式中,我們先將輸入數轉正數(無論正負統一處理),然後不斷迴圈直到商為0,同時得到reminder(餘數),根據reminder是否大於9判斷使用數字或字母轉成creminder(char),並寫入stringstream(用於快速新增字元),結束迴圈後將string取出,根據原數正負還原正負號並反轉,於是就得到了經過進製轉換的數。
int2scale
進製轉換int2n
如果輸入合法,就是轉換的十進位制數是非負整數,base進製是大於等於2的正整數,然後malloc函式成功什麼的之後,哦,還有用完那個字元陣列還要free一下。細節細節,先不管吧,要用的話再補充。返回的char陣列中存的base進製的數是倒序的要注意一下,和高精度一致,嗯,也許倒著有點用。includ...
10進製轉換18進製 2進製
將乙個10進製數除以18,得到的商再除以18,依次類推直到商等於1或0為止,倒序取得的餘數即為18進製的結果。同理轉換為2進製。如圖 實現 如下 public class cal4 轉換18進製 param number return public static listto18 int numbe...
10進製與2進製的轉換
10進製與2進製轉換還真是個麻煩事,由於生活中,我們都是用10進製的,所以,當我們生活中遇到2進製的數字時,總是需要轉換成10進製來處理,而電腦開發者,還經常要在兩種進製裡互換 以前,將10進製與2進製互換,我總是以2n次方來轉,如下 18 轉 2進製 n次方方法 18 16 2 18 24 03 ...