public class BcdUtils {
/**
* 将字符串转换为bcd
*
* @param value
* @param buf
*/
public static void toBcd(String value, byte[] buf) {
int charpos = 0; // char where we start
int bufpos = 0;
if (value.length() % 2 == 1) {
// for odd lengths we encode just the first digit in the first byte
buf[0] = (byte) (value.charAt(0) - 48);
charpos = 1;
bufpos = 1;
}
// encode the rest of the string
while (charpos < value.length()) {
buf[bufpos] = (byte) (((value.charAt(charpos) - 48) << 4) | (value.charAt(charpos + 1) - 48));
charpos += 2;
bufpos++;
}
}
/**
* bcd解码
*
* @param bytes
* @return
*/
public static String bcd2Str(byte[] bytes) {
StringBuffer temp = new StringBuffer(bytes.length * 2);
for (int i = 0; i < bytes.length; i++) {
temp.append((byte) ((bytes[i] & 0xf0) >>> 4));
temp.append((byte) (bytes[i] & 0x0f));
}
String ret = temp.toString().substring(0, 1).equalsIgnoreCase("0") ? temp.toString().substring(1) : temp
.toString();
return ret;
}
bcd码转换
最新推荐文章于 2023-09-15 00:45:32 发布