在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,虽然缺少注释一下子很难懂,但是却很有深层逻辑的一份实现:)