Java Long to String LongToString(long number, boolean bcdFlag, int bufferSize)

Here you can find the source of LongToString(long number, boolean bcdFlag, int bufferSize)

Description

Long To String

License

Open Source License

Declaration

public static byte[] LongToString(long number, boolean bcdFlag, int bufferSize) 

Method Source Code

//package com.java2s;

public class Main {
    public final static char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e',
            'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',
            'z' };
    public final static byte[] BCD_Digit = { (byte) 0x00, (byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04,
            (byte) 0x05, (byte) 0x06, (byte) 0x07, (byte) 0x08, (byte) 0x09, (byte) 0x10, (byte) 0x11, (byte) 0x12,
            (byte) 0x13, (byte) 0x14, (byte) 0x15, (byte) 0x16, (byte) 0x17, (byte) 0x18, (byte) 0x19, (byte) 0x20,
            (byte) 0x21, (byte) 0x22, (byte) 0x23, (byte) 0x24, (byte) 0x25, (byte) 0x26, (byte) 0x27, (byte) 0x28,
            (byte) 0x29, (byte) 0x30, (byte) 0x31, (byte) 0x32, (byte) 0x33, (byte) 0x34, (byte) 0x35, (byte) 0x36,
            (byte) 0x37, (byte) 0x38, (byte) 0x39, (byte) 0x40, (byte) 0x41, (byte) 0x42, (byte) 0x43, (byte) 0x44,
            (byte) 0x45, (byte) 0x46, (byte) 0x47, (byte) 0x48, (byte) 0x49, (byte) 0x50, (byte) 0x51, (byte) 0x52,
            (byte) 0x53, (byte) 0x54, (byte) 0x55, (byte) 0x56, (byte) 0x57, (byte) 0x58, (byte) 0x59, (byte) 0x60,
            (byte) 0x61, (byte) 0x62, (byte) 0x63, (byte) 0x64, (byte) 0x65, (byte) 0x66, (byte) 0x67, (byte) 0x68,
            (byte) 0x69, (byte) 0x70, (byte) 0x71, (byte) 0x72, (byte) 0x73, (byte) 0x74, (byte) 0x75, (byte) 0x76,
            (byte) 0x77, (byte) 0x78, (byte) 0x79, (byte) 0x80, (byte) 0x81, (byte) 0x82, (byte) 0x83, (byte) 0x84,
            (byte) 0x85, (byte) 0x86, (byte) 0x87, (byte) 0x88, (byte) 0x89, (byte) 0x90, (byte) 0x91, (byte) 0x92,
            (byte) 0x93, (byte) 0x94, (byte) 0x95, (byte) 0x96, (byte) 0x97, (byte) 0x98, (byte) 0x99, };

    public static int LongToString(long number, byte[] buf, int offset, int length, boolean bcdFlag) {
        if (buf == null || offset < 0 || length < 1 || buf.length < (offset + length))
            return -1;
        length = offset + length;/* w  w w .  j  a va  2s  . c  o m*/
        int charPos = length - 1;
        int numberLength = charPos;
        boolean numberLengthFlag = true;
        int index = 0;
        int radix = (bcdFlag ? 100 : 10);

        if (number > 0) {
            number = -number;
        }
        for (; charPos >= offset; charPos--) {
            if (0 != number) {
                index = (int) (-(number % radix));
                number = number / radix;
            } else {
                index = 0;
            }
            if (numberLengthFlag && 0 == number) {
                numberLengthFlag = !numberLengthFlag;
                numberLength = length - charPos;
            }
            if (bcdFlag) {
                buf[charPos] = BCD_Digit[index];
            } else {
                buf[charPos] = (byte) digits[index];
            }
        }

        return numberLength;
    }

    public static byte[] LongToString(long number, boolean bcdFlag, int bufferSize) {
        int size = (bufferSize > 0 ? bufferSize : 20);
        byte[] buffer = new byte[size];
        int length = LongToString(number, buffer, 0, size, bcdFlag);
        if (bufferSize > 0)
            return buffer;
        byte[] buf = new byte[length];
        System.arraycopy(buffer, size - length, buf, 0, length);
        buffer = null;
        return buf;
    }
}

Related

  1. longToString(long li)
  2. longToString(long longV)
  3. longToString(long longValue)
  4. longToString(long longValue, boolean noCase)
  5. longToString(long n)
  6. longToString(long val)
  7. longToString(long value)
  8. longToString(long value)
  9. longToString(Long value)