JAVA中BCD码的转化问题:原来可以这么简单

来源:互联网 发布:淘宝上的零食能吃吗 编辑:程序博客网 时间:2024/05/10 20:54

在Java中由于语言内建的支持,可以将10进制数转化为二进制存储的BCD会出现异常的简洁。

              for(int i= 0;i<64096;i++)
{

int num              = i;

    /*A:取得十进制的字符串表示,相当于用数值运算,不断地除10,获得每个十进制位上的值*/
   String numStr        = Integer.toString(num);
   
   /*B:每一个十进制数用BCD码表示,则相当于按照十六进制进行parse*/
   Integer bcdObj       = Integer.parseInt(numStr, 16);
  
   /*C:获得一个新的值,此值会比以前大很多,注意是否会越界,属于设计时选取相应或合适的数据类型问题*/
   int bcdValue         = bcdObj.intValue();


   /*D:将此数值直接put到二进制缓冲区中,即可实现十进制数到二进制BCD的转化*/

   /*验证*/
   String bcdReverseStr = Integer.toHexString(bcdValue);
   int numReverse          = Integer.parseInt(bcdReverseStr);

   assertEquals(num, numReverse);

}


   伪码表示,应该都可以看得比较明白。记述下工作中遇到一个JAVA转化BCD,虽然缺少注释一下子很难懂,但是却很有深层逻辑的一份实现:)