BCD码,全称 二进制编码的十进制(Binary-Coded Decimal),指的就是用四位二进制数表示一位BCD码,用一个字节表示的两位BCD码,称为压缩型BCD码。
/**
* BCD编码
* @author Administrator
*
*/
public class BCD {
/**
* 将十进制字符串转换为 BCD编码
* @param str
* @return
*/
public static byte[] String_BCD(String str) {
byte[] s = str.getBytes();
byte[] b = new byte[s.length/2];
for(int i=0;i<b.length;i++) {
b[i] = (byte) (s[2*i] << 4 | (s[2*i+1] & 0xf));
}
return b;
}
/**
* 将BCD编码的byte数组转换为String
* @param bcd
* @return
*/
public static String BCD_String(byte[] bcd) {
StringBuilder sb = new StringBuilder();
for(int i=0;i<bcd.length;i++) {
sb.append(bcd[i]>>4&0xf)
.append(bcd[i]&0xf);
}
return sb.toString();
}
}