ブルーブリッジカップベース-014-Decimal_To_Hexadecimal


に言及
整数nを入力します(0<=n<=2147483648)
(javaでint[-2^31,2^31]つまりnをintとすればよい
コード#コード#
import java.util.Scanner;


public class Main {

	public static void main(String[] args) {

		char[] HexDecimalAlphabet = new char[16];
		char[] A_F_Alphabet = {'A','B','C','D','E','F'};
		char[] Stack = new char[8];
 		for (int i = 0; i < HexDecimalAlphabet.length; i++) {
			if(i<10)
				HexDecimalAlphabet[i] = (char)((int)'0'+i);
			else
				HexDecimalAlphabet[i] = A_F_Alphabet[ i%10 ];
 		}

 		Scanner keyin = new Scanner(System.in);
 		int n = keyin.nextInt();
 		int cnt = 0;
 		do{
 			Stack[cnt] = HexDecimalAlphabet[n % 16];
 			cnt++;
 			n = n / 16;
 		}while( n != 0);
 		for (int i = cnt - 1; i >= 0; i--) {
			System.out.print(Stack[i]);
		}
	}
}

Summary
i)HexadecimalAlphabetマッピングテーブルを作成する. 
ii)nに対してビット数取り操作を行う(1.n MOD 16,2.n/=16,3.while(n!=0)
iii)ch=HexdicimalAlphabet[sub(=MODで得られた数)]&&スタック(または数列に記入); 
iv)出桟(逆順出力数列)