当前位置: 首页 > 图文教程 > Java技术 > Java基础 > Java基础:小编教大家十进制数转十六进制数的算法

Java基础
体验Java 1.5中面向(AOP)编程
Java中基于Aspectwerkz的AOP
2004开发技术年度综述之Java世界
JavaBeans程序开发
开发基于Java的图形用户界面
Java加密和数字签名编程
Java应用程序中创建图像
初探Java类加载机制
EJB3.0之实体Bean的继承
javamail收取Hotmail的退信
JavaMail访问Hotmail邮箱
EJB3.0开发之多对多和一对一
EJB 3.0开发指南之多表映射
EJB组件与可重用性的矛盾
J2SE中的序默认序列化
Java操作文本文件的方法
Java多线程编程之限制优先级
EJB 3.0 开发指南之定时服务
J2SE中的序列化之继承
J2SE中的序列化的认识

Java基础:小编教大家十进制数转十六进制数的算法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-26   浏览: 445 ::
收藏到网摘: n/a

本例小编将介绍十进制数转十六进制数的算法。虽然是很基础的东西,但是也希望对大家有所帮助。因为Java基础很重要。

   十进制数转换为十六进制数的方法与以上两种的转换方法相似,不同之处除了除数改为16外,还需要将余数为10-15的数改为A-F的形式。例如,十进制数为2604,则计算十六进制数的方法如下:

   2604/16=162(商)…….12(余数)//余数12对应C;商大于0,则继续除以6

   162/16=10(商)……..2(余数)//余数为2;商大于0,则继续除以6

   10/16=0(商)………10(余数)//余数10对应A;商等于0,结束。

   所以2604十六进制数A2C

   代码如下:

   //十进制转十六进制数

   Public string DtoX(int d)

   {

     String x=””;

     If(d<16)

     {

        x=chang(d);

     }

     Else

     {

        Int c;

        Int s=0;

        Int n=d;

        While(n>=16)

        {

           s++;

           n=n/16;

        }

      String [] m=new string[s];

      Int i=0;

      do

       {

           c=d/16;

           m[i++]=change(d%16);//判断是否大于10,如果大于10,则转换为A-F的格式

           d=c

       }while(c>=16);

       x=chang(d);

       for(int j=m.Length-1;j>=0;j--)

       {

           x+=m[j];

       }

     }

      return x;

   }

//判断是否为10-15之间的数,如果是则进行转换

Public string chang(int d)

{

   String x=””;

   Switch(d)

   {

     Case10:

       x=”A”;

       break;

     Case11:

       x=”B”;

       break;

     Case12:

       x=”C”;

       break;

Case13

       x=”D”;

       break;

Case14:

       x=”E”;

       break;

Case15:

       x=”F”;

       break;

   default:

       x=d.ToString();

      break;

   }

  return x;

}