关于BCD码的相关操作

简介:

bcd参考:http://www.baike.com/wiki/BCD%E7%A0%81

(1)获取日期和时间的BCD码

比如 2013年12月6日21:23:10,转化为BCD码就是131206212310

Java代码   收藏代码
  1. static public String getTime2() {  
  2.         SimpleDateFormat format = new SimpleDateFormat("yyMMddHHmmss");  
  3.         return format.format(new Date());  
  4.     }  

 

 

(2)把BCD码转化为金额

Java代码   收藏代码
  1. /*** 
  2.      * 从BCD获取金额,单位是元,"000000011023"-->"110.23";"000000000013"-->"0.13" 
  3.      * @param bcd 
  4.      * @return 
  5.      */  
  6.     public static String getMoneyFromBcd(String bcd){  
  7.         if(StringUtil.isNullOrEmpty(bcd)){  
  8.             return null;  
  9.         }  
  10.         int dotLoc=bcd.length()-2;  
  11.         String money=bcd.substring(0,dotLoc )+Constants.DOT+bcd.substring(dotLoc);  
  12.         bcd=money.replaceAll("^[0]+""");  
  13.         if(bcd.startsWith(".")){//.23-->0.23  
  14.             bcd=0+bcd;  
  15.         }  
  16.         return bcd;  
  17.     }  

 测试:

Java代码   收藏代码
  1. @Test  
  2.     public void test_getMoneyFromBcd() {  
  3.         String hex = "000000000013";  
  4.         System.out.println(BcdUtil.getMoneyFromBcd(hex));  
  5.     }  

 运行结果:0.13

注意:单位是元。

(3)把金额转化为BCD码

Java代码   收藏代码
  1. /*** 
  2.      * 把金额转化为BCD码,注意:金额的单位是分,不是元. 
  3.      *  
  4.      * @param moneyInt 
  5.      * @return 
  6.      */  
  7.     public static String moneyToBcd(long moneyInt){  
  8.         String moneyBCDStr=String.valueOf(moneyInt);  
  9.         while(moneyBCDStr.length()<12){  
  10.             moneyBCDStr=0+moneyBCDStr;  
  11.         }  
  12.         return moneyBCDStr;  
  13.     }  

 比如把1角2分转化为BCD码:

Java代码   收藏代码
  1. @Test  
  2.     // ok  
  3.     public void test_moneyToBcd() {  
  4.         long money = 12L;  
  5.         System.out.println(BcdUtil.moneyToBcd(money));  
  6.     }  

 运行结果:

000000000012

注意:测试金额的单位是分,不是元。

相关文章
|
7月前
|
存储 人工智能 算法
每日练习——同余方程以及格雷码
每日练习——同余方程以及格雷码
45 1
|
8月前
|
缓存 NoSQL Java
你的码有我的码蠢?
你的码有我的码蠢?
49 0
|
算法 C++
Morton码的计算
Morton码是对栅格格网进行编码的一种算法,在Google中搜索Morton,搜索结果第一位是Wikipedia的Z-order Curve,这是因为Morton码编码结果展现为一种Z形的填充曲线。下面简要说一下如何计算四进制和十进制的Morton码。
582 0
|
存储
系统码的编译码与汉明码
系统码的编译码与汉明码
169 0
系统码的编译码与汉明码
BCH码与RS码详解
BCH码与RS码详解
337 0
|
存储
5.1.2_BCD码
计算机组成原理之BCD码
183 0
|
算法 C语言 芯片
【C语言】BCD码、十进制互相转换
【C语言】BCD码、十进制互相转换
865 0