1.问题描述
一个整数 比如300,要求写代码打印它的十六进制数12c
2.问题分析:
这个问题需要解决两个问题,要想知道它的十六进制,首先要给它取16的模,得到它十六进制数的最后一位,然后再除以十六,继续取模,其次就是十六进制数大于9的数用字母来表示,这是一个特殊情况,需要做特殊处理。最后按照这样的顺序计算出来是它相反的顺序,需要再用一个方法将结果倒置,即为最终结果。
注意:Java中的字符相加并不是c中的把它的ascII码值相加,而是进行字符与字符之间的拼接 。
public static void main(String[] args)
{
int n=300;
int num=0;
int f=0;
String r="";
int i=0;
while(n>0)
{
num=n%16;
f=n/16;
if(num>9)
{
char c=(char)((num-10)+'A');
r+=c;
}
else
r+=num;
n=f;
}
String s1=reverse(r);
System.out.println(s1);
}