Here you can find the source of bcd2str(byte[] b, int offset, int len, boolean padLeft)
Parameter | Description |
---|---|
b | - BCD representation |
offset | - starting offset |
len | - BCD field len |
padLeft | - was padLeft packed? |
public static String bcd2str(byte[] b, int offset, int len, boolean padLeft)
//package com.java2s; /*/*from ww w .ja va 2 s . c o m*/ * 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(); } }