Here you can find the source of ascii2BCD(byte[] val, int len)
public static byte[] ascii2BCD(byte[] val, int len)
//package com.java2s; public class Main { public static byte[] ascii2BCD(byte[] val, int len) { byte[] valByte = new byte[(len + 1) / 2]; if (len % 2 == 0) { for (int i = 0; i < len; i++) { byte b = val[i]; if (b > '9') { b = (byte) (b % 0x10 + 9); } else { b = (byte) (b % 0x10); }/*from w w w. ja v a 2 s . c om*/ if (i % 2 == 0) { valByte[i / 2] = (byte) (b * 0x10); } else { valByte[i / 2] += b; } } } else { valByte[0] = (byte) (val[0] % 0x10); for (int i = 1; i < len; i++) { byte b = val[i]; if (b > '9') { b = (byte) (b % 0x10 + 9); } else { b = (byte) (b % 0x10); } if (i % 2 != 0) { valByte[(1 + i) / 2] = (byte) (b * 0x10); } else { valByte[(1 + i) / 2] += b; } } } return valByte; } }