Java程式設計題:將一個十六進位制的字串轉換成一個十進位制的整數
阿新 • • 發佈:2019-01-08
思路:
1.將字串轉換成一個一個的字元2.將字元轉換成十六進位制的數字
3.計算出結果
package test; public class Test { public static void main(String[] args) { String str = "13abf"; int len = str.length(); int sum = 0; for(int i=0;i<len;i++){ /* * charAt 官方文件上是說返回指定索引處的char值, * 實際上就是將字串轉換成一個一個的字元 */ char c = str.charAt(len-1-i); /* * digit 官方文件上是說返回使用指定基數的字元c的數值, * 實際上和Integer.parseInt(c,radix)是一個道理, * 就是將你指定進位制的這個字元c轉換成一個整數 */ int n = Character.digit(c,16); /* * 這就相當於1*16^4+3*16^3+... * <<:高位去除,地位補0 * a<<b在資料不溢位的情況下相當於a*2^b */ sum += n * (1<<(4*i)); } System.out.println(sum); //利用Integer類的靜態方法可以直接得到結果 //System.out.println(Integer.parseInt(str, 16)); //System.out.println(Integer.valueOf(str, 16)); } }