程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> java-Java 十進制轉十六進制?

java-Java 十進制轉十六進制?

編輯:編程解疑
Java 十進制轉十六進制?

問題描述
  十六進制數是在程序設計時經常要使用到的一種整數的表示方式。它有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

最佳回答:


藍橋杯題目。
如果是調用封裝好的方法:

 import java.util.Scanner;  

public class Main{  

    public static void main(String[] args) {  
        Scanner sc = new Scanner(System.in);  
        long number = sc.nextLong();  
        String arry = Long.toHexString(number);//十進制轉十六進制  
        arry = arry.toUpperCase();  
        System.out.println(arry);  
    }  
}

如果自己實現的話,通過建立StringBuilder對象 和append()方法,連接每位16進制數,其中獲取到的16進制字符串為逆序的16進制字符串,需要進行逆序操作,最終轉換為16進制字符串:

     import java.util.Scanner;  

    public class Main{  

        public static void main(String[] args) {  
            Scanner sc = new Scanner(System.in);  
            long number = sc.nextLong();  
            int remainder = 0;  
            int len;  
            StringBuilder st = new StringBuilder();  
            do{  
                remainder = (int) (number % 16);  
                number = number / 16;  
                switch (remainder) {  
                case 10:  
                    st.append("A");  
                    break;  
                case 11:  
                    st.append("B");  
                    break;  
                case 12:  
                    st.append("C");  
                    break;  
                case 13:  
                    st.append("D");  
                    break;  
                case 14:  
                    st.append("E");  
                    break;  
                case 15:  
                    st.append("F");  
                    break;  
                default:  
                    st.append(remainder);  
                    break;  
                }  
            }while(number >= 1);  
            len = st.toString().length();  
            char [] arry = st.toString().toCharArray();  
            st = new StringBuilder();  
            for(int i = len - 1; i >= 0; i--){  
                st.append(arry[i]);  
            }  
            System.out.println(st);  
        }  
    }  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved