BCD码如何转换成十进制

woshiygjs 2010-07-17 10:55:51
如何将两个字节的BCD码转换成十进制,例如:35 26 变成十进制是 263.5 能给我一个计算公式吗,谢谢
...全文
2474 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xusenjian 2010-07-18
  • 打赏
  • 举报
回复
找个视频看看吧
PapaDog_ 2010-07-18
  • 打赏
  • 举报
回复
回帖加分!
wqkjj 2010-07-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 woshiygjs 的回复:]

2楼的先谢了,可是这个似乎不通用,换个数字就不对了,而且不是String类型的是byte[]型的
[/Quote]

也可以先转换一下
public class Test1{
public static long BCDtoInt(String s ) {
long sum = 0;
for(int i=0,len=s.length(); i<len; i++ ) {
int a = s.codePointAt(i)-0x30;
sum = sum * 10+a;
}
return sum;
}
public static String ByteToHexString(byte[] a ) {
String s="";
for(int i=0,len=a.length;i<len;i++) {
s += Integer.toHexString(new Byte(a[i]).intValue());
}
return s;
}
public static void main(String[] args){
System.out.println(BCDtoInt("2635"));
byte[] t={0x26,0x35};
System.out.println(BCDtoInt(ByteToHexString(t)));
}
}
wqkjj 2010-07-18
  • 打赏
  • 举报
回复
public class Test1{
public static long BCDtoInt(String s ) {
long sum = 0;
for(int i=0,len=s.length(); i<len; i++ ) {
int a = s.codePointAt(i)-0x30;
sum = sum * 10+a;
}
return sum;
}
public static long ByteBCDtoInt(byte[] a ) {
long sum = 0;
int b;
for(int i=0,len=a.length;i<len;i++) {
b = new Byte(a[i]).intValue();
int n = (b & 0xf0)>>4,
m = b & 0x0f;
sum = sum*10+n;
sum = sum*10+m;
}
return sum;
}
public static void main(String[] args){
System.out.println(BCDtoInt("2635"));
byte[] t={0x26,0x35};
System.out.println(ByteBCDtoInt(t));
}
}
wqkjj 2010-07-17
  • 打赏
  • 举报
回复
// 字节顺序LZ自己搞定, 后面是几位小数,在适当的位置上插入小数点。
public class Test1{
public static long BCDtoInt(String s ) {
long sum = 0;
for(int i=0,len=s.length(); i<len; i++ ) {
int a = s.codePointAt(i)-0x30;
sum = sum * 10+a;
}
return sum;
}
public static void main(String[] args){
System.out.println(BCDtoInt("2635"));
}
}
亲努力啊 2010-07-17
  • 打赏
  • 举报
回复
刚一看还不知道BCD是什么码...baidu下原来在中国大陆称之为8421码 杯具...
woshiygjs 2010-07-17
  • 打赏
  • 举报
回复
不对啊,你的答案好像都不对啊
woshiygjs 2010-07-17
  • 打赏
  • 举报
回复
2楼的先谢了,可是这个似乎不通用,换个数字就不对了,而且不是String类型的是byte[]型的
DAVE_LUO 2010-07-17
  • 打赏
  • 举报
回复
学习了。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧