`
virusfu
  • 浏览: 180206 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics