JAVA中BCD码的转化问题:原来可以这么简单
2012-10-11 20:31
1046 查看
在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,虽然缺少注释一下子很难懂,但是却很有深层逻辑的一份实现:)
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,虽然缺少注释一下子很难懂,但是却很有深层逻辑的一份实现:)
相关文章推荐
- Java: 在dos窗口输入密码,不要把密码直接显示出来,原来可以这么简单
- 原来这么简单就可以实现无纸化办公
- 微信公众号开发,原来这么简单?[java框架]
- 5分钟入门网络爬虫 - 原来可以这么简单易懂
- 原来幸福可以这么简单
- 实体类的枚举属性--原来支持枚举类型这么简单,没有EF5.0也可以
- (原来可以这么简单)实现变色TextView及ViewPager指示器(二)
- JPA + SpringData 操作数据库原来可以这么简单 ---- 深入了解 JPA - 3
- 心电图测量原来可以这么简单
- 原来操控界面可以这么简单----安卓上下滑动缩放顶部图片,左右滑动结束当前Activity,及View柔和回弹效果
- 实体类的枚举属性--原来支持枚举类型这么简单,没有EF5.0也可以
- 原来这么简单就可以申请Blog了,害我还自己做了一个~
- 最新开源DBLayer,原来数据库操作可以这么简单
- java一个简单的问题,大家可以看下
- 原来java的List可以这么玩
- 实体类的枚举属性--原来支持枚举类型这么简单,没有EF5.0也可以
- ASP.NET MVC3 + Ninject.Mvc3 依赖注入原来可以这么简单
- JPA + SpringData 操作数据库原来可以这么简单 ---- 深入了解 JPA - 1
- 利用.NET做“电子书阅读器”原来这么简单(其实你也可以做出金山词霸)
- JSON解析的成长史——原来还可以这么简单