ブルーブリッジカップベース-014-Decimal_To_Hexadecimal
1053 ワード
に言及
整数nを入力します(0<=n<=2147483648)
(javaでint[-2^31,2^31]つまりnをintとすればよい
コード#コード#
Summary
i)HexadecimalAlphabetマッピングテーブルを作成する.
ii)nに対してビット数取り操作を行う(1.n MOD 16,2.n/=16,3.while(n!=0)
iii)ch=HexdicimalAlphabet[sub(=MODで得られた数)]&&スタック(または数列に記入);
iv)出桟(逆順出力数列)
整数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)出桟(逆順出力数列)