黑马程序员技术交流社区

标题: java基础总结之数组以及函数简单应用(进制转换) [打印本页]

作者: qinjingbo    时间: 2014-10-22 22:33
标题: java基础总结之数组以及函数简单应用(进制转换)
最近一直在看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;
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2