最近一直在看java基础,在为了靠近黑马努力,最近看到了数组与方法调用,感觉例题很是经典,自己也动手写了下,现在分享下。
题目:十进制转换十六进制。
代码如下:/*
十进制转换成十六进制。记得多练习下。查表法;
*/
class ArrayTest1
{
public static void main(String[] args)
{
int num=60;
String str=toHex(num);
System.out.println(""+str);
}
/*定义一个方法,实现一个功能,功能为十进制转换成十六进制
明确1:目的是把一个十进制数转化成十六进制,所以系统主函数会输入一个十进制数,所以把参数为一个
int类型的变量接收主函数传过来的十进制数。
明确 :结果是输出十六进制,而且是查表法,因为十六进制是由1-9与’A‘-‘F’组成
,可以把它们存储进一个字符数组中,然后把十进制数与15 相与 然后把它转换成十六进制字母
存储在一个字符数组中,最后再左移四位,再次与15相与。最后依次输出所以返回值类型为string.
*/
public static String toHex(int num)
{
//定义表
char[] cha={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
//定义一个数组接收转换后的十六进制
char[] arr=new char[8];
//定义一个索引
int index=arr.length-1;
while(num!=0)
{
int temp=num & 15;
for(int i=0;i<16;i++)
{
if(temp==i)//cha[i]所代表的是字符类型,temp是整型变量,互相赋值,char类型会变成整型,就会输出与之对应的ASICII码表
arr[index]=cha[i];
}
//arr[index]=cha[temp];这是简单方法,功能与使用for循环相同
index--;
num=num>>>4;
}
return "0x"+toString(arr,index);
}
//定义一个功能,把字符数组转换成字符串
public static String toString(char[] arr,int index)
{
String str="";
for(int i=index;i<arr.length;i++)
{
str=str+arr[i];
}
return str;
}
}
|
|