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

Java基础
JavaBeans 与 Ejb 的区别
通过Java Swing看透MVC设计
Java多线程编程精要之高级支持
Struts与Hibernate协同工作
JDBC连接数据库经验技巧
Spring 编程入门十大问题解答
基于Java的建造设计模式
Java多线程编程精要之实现线程
JBuilder和JDeveloper的简单比较
Java多线程编程精要之基础
Java内存泄露问题分析
J2EE应用应遵循的几点原则
JavaBean实现多文件上传
开发线程安全的Spring Web应用
基于Java的解释器设计模式
Java中轻松实现界面跳转
JDBC 2.0中的高级数据类型
Java语言接口与继承的本质
Java数据对象(JDO)的前世今生
Java打印程序设计全攻略

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-26   浏览: 440 ::
收藏到网摘: 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;

}