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

Java基础
Java服务器端编程安全必读
编写一个JAVA的队列类
调用CUI程序的方法
Java多线程程序设计
在Eclipse中用SWT设计界面
Java数据对象JDO 2.0查询语言的特点
JSP概述
JSP预定义变量的使用
JSP Actions的使用
JSP中实现页面跳转
JSP之Taglib Directiv
用Java编写通过代理访问的应用程序
Java性能优化技巧集锦
JSP不是简化的Java
Java入门需掌握的30个基本概念
如何取得IP/用户名等信息
Java和javascript有何关系?
Windows 2000中如何配置JDK
Java学习的捷径
如何迅速成为Java高手

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


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

}