05-十六進制轉十進制

題目回顧

十六進制與十進制的轉換,輸入一個十六進制字符串,轉換成十進制數輸出。

解題思路

需要思路麼?大概不需要,遍歷字符串,把字符0~9的當做一類處理,字符A ~ F的當做一類處理,轉成整數後按照轉換規則對每一位進行指數、乘法操作並累加就好啦。

代碼(Java)

import java.util.Scanner;
/**
 *	@author : flower48237
 *	@version: 2020年3月11日 下午9:12:13 
 *	@note : OX to Ten
 */
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		String str = in.nextLine();
		//用long定義sum是爲了防止溢出
		long sum = 0;	
		int len = str.length();
		for (int i = 0; i < len; i++) {
			 char ch = str.charAt(i);
			 int chval = (int)ch;
			 if(chval - 48 > 9){
                 if(str.charAt(i) == 'a')
                     sum += 10 * Math.pow(16,len-i-1);
                 else if(ch == 'b')
                     sum += 11*Math.pow(16,len-i-1);
                 else if(ch == 'c')
                     sum += 12*Math.pow(16,len-i-1);
                 else if(ch == 'd')
                     sum += 13*Math.pow(16,len-i-1);
                 else if(ch == 'e')
                     sum += 14*Math.pow(16,len-i-1);
                 else if(ch == 'f')
                     sum += 15*Math.pow(16,len-i-1);
             }
             else{
                 sum+=(chval - 48) * Math.pow(16,len-i-1);
             }
		}
		System.out.print(sum);
	}
}

聯通軟件研究院筆試編程題之一,感覺考的很重視基礎。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章