Java tutorial
//package com.java2s; /* * jPOS Project [http://jpos.org] * Copyright (C) 2000-2012 Alejandro P. Revilla * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ public class Main { /** * converts a BCD representation of a number to a String * @param b - BCD representation * @param offset - starting offset * @param len - BCD field len * @param padLeft - was padLeft packed? * @return the String representation of the number */ public static String bcd2str(byte[] b, int offset, int len, boolean padLeft) { StringBuilder d = new StringBuilder(len); int start = (((len & 1) == 1) && padLeft) ? 1 : 0; for (int i = start; i < len + start; i++) { int shift = ((i & 1) == 1 ? 0 : 4); char c = Character.forDigit(((b[offset + (i >> 1)] >> shift) & 0x0F), 16); if (c == 'd') c = '='; d.append(Character.toUpperCase(c)); } return d.toString(); } }