bcd码转换

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;
	}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值