高效的十進位制與18進製的轉換

2021-07-16 13:03:08 字數 773 閱讀 9351

首先初始化三個引數,map用來存放10-17的資料,,sb用來顯示最後的18進製資料,list用來存放10進製轉為18進製後的每一位。

//用來存放詞典

public static final mapmap=new hashmap();

//18進製資料

public static stringbuffer sb=new stringbuffer("");

//用來存放18進製資料的每一位

public static listlist=new arraylist();

//自動載入詞典

static

接下來就是核心的轉換**

/**將十進位制數字轉十八進製制數字。

*/private  static void get18(int num)

}此段**的主要思路就是將十進位制數對18取整(即除以18)後迴圈取餘,最後將餘數儲存下來即可。

接下來是對餘數的後續處理:

//生成18進製數字

private static void to18()

將list中的餘數與map中的匹配,若大於10的則用英文本母a-h表示,否則就用數字0-9表示。

這裡list下標從最大開始遞減是因為要將得到的餘數進行倒序排列才能得到相應的18進製數。

下面是相應的測試**:

//測試

public static void main(string args)

結果是gc0.

其實只要理解了十進位制轉換的思想,十進位制轉換任何進製都是相應的套路。

十進位制的轉換

include int main void int convertednumber 64 long int numbertoconvert int nextdigit,base,index 0 get the number and the base printf number to be conve...

十進位制數與N進製的轉換

1 問題描述 將從鍵盤輸入的十進位制數轉換為n 如二進位制,八進位制,十六進製制 進製資料。2 要求 利用順序棧實現數制轉換問題 include include 定義棧結構 typedef struct stackstack 宣告函式 void settable char table void pu...

python的十進位制與任意進製的轉換

將任意進製轉換成十進位制 print int 54 8 表示把8進製的54轉換成十進位制數並輸出結果。8可以是2 8,10,16等進製數 將十進位制轉換成任意進製 def f n,x n為待轉換的十進位制數,x為機制,取值為2 16 a 0,1,2,3,4,5,6,7,8,9,a b c d e f...