1. 程式人生 > 實用技巧 >十進位制轉十六進位制

十進位制轉十六進位制

題目描述:

十六進位制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16個符號,分別表示十進位制數的0至15。十六進位制的計數方法是滿16進1,所以十進位制數16在十六進位制中是10,而十進位制的17在十六進位制中是11,以此類推,十進位制的30在十六進位制中是1E。
給出一個非負整數,將它表示成十六進位制的形式。

輸入:

輸入包含一個非負整數a,表示要轉換的數。0<=a<=2147483647

輸出:

輸出這個整數的16進製表示

例樣輸入:

30

例樣輸出:

1E

解題思路:

十六進位制的計數方法是滿16進1,所以十進位制數16在十六進位制中是10,由此可用String的CharAt()來獲取指定索引處的值。十六進位制表示0~9,'A'、'B'、'C'、'D'、'E'、'F',餘數大於9

可先建立一個String的方法,用來反轉字串,再建立一個方法遍歷

程式碼:

package Demo01;
import java.util.Scanner;
public class demo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(Xiang(n));
}
//反轉字串
public static String Li(String s){
int length=s.length();
String r = "";
for(int i=length-1;i>=0;i--){
r += s.charAt(i);//charAt(int)表示返回char指定索引處的值
}
return r;
}
//遍歷
public static String Xiang(int n){
String s = "";
while(n > 0){
int chenk = n % 16;
if(chenk >9){//餘數大於9,
char c=(char)(chenk-10+'A');//強轉為字元型
s += c;
}else{
s += chenk;
}
n = n / 16;
}
return Li(s);//呼叫反轉字串函式
}
}