java study 04day--进制转换

来源:互联网 发布:中海网络科技股份 编辑:程序博客网 时间:2024/05/02 02:12

一、十进制-》二进制

       public static void toBin(int num)

       {

              StringBuffer sb = new StringBuffer();

 

              while(num>0)

              {

                     //System.out.println(num%2);

                     sb.append(num%2);

                     num = num / 2;

              }

 

              System.out.println(sb.reverse());

       }

二、十进制-->十六进制

       public static void toHex(int num)

       {

 

              StringBuffer sb = new StringBuffer();

 

              for(int x=0; x<8; x++)

              {

                     int temp = num & 15;

                     if(temp>9)

                            //System.out.println((char)(temp-10+'A'));

                            sb.append((char)(temp-10+'A'));

                     else

                            //System.out.println(temp);

                            sb.append(temp);

 

                     num  = num >>> 4;

              }

              System.out.println(sb.reverse());

 

       }

查表法十进制-十六进制

public static void toHex(int num)

       {

              char[] chs = {'0','1','2','3'

                                   ,'4','5','6','7'

                                   ,'8','9','A','B'

                                   ,'C','D','E','F'};

             

              //定义一个临时容器。

              char[] arr = new char[8];

              int pos = arr.length;

 

              while(num!=0)

              {

                     int temp = num & 15;

                    

                     //System.out.println(chs[temp]);

                     arr[--pos] = chs[temp];

                     num = num >>> 4;

              }

              System.out.println("pos="+pos);

              //存储数据的arr数组遍历。

              for(int x=pos;x<arr.length; x++)

              {

                     System.out.print(arr[x]+",");

              }

 

       }

三、进制优化

public static void toHex(int num)

       {

              char[] chs = {'0','1','2','3'

                                   ,'4','5','6','7'

                                   ,'8','9','A','B'

                                   ,'C','D','E','F'};

             

              //定义一个临时容器。

              char[] arr = new char[8];

              int pos = arr.length;

 

              while(num!=0)

              {

                     int temp = num & 15;

                    

                     //System.out.println(chs[temp]);

                     arr[--pos] = chs[temp];

                     num = num >>> 4;

              }

              System.out.println("pos="+pos);

              //存储数据的arr数组遍历。

              for(int x=pos;x<arr.length; x++)

              {

                     System.out.print(arr[x]+",");

              }

 

       }

 

 

原创粉丝点击