Java Integer to Hex int2HexString(final int i)

Here you can find the source of int2HexString(final int i)

Description

Formats an integer as a hex string of little-endian, non-zero-padded bytes.

License

LGPL

Parameter

Parameter Description
i the integer to format

Return

the formatted string representing the integer

Declaration

public static String int2HexString(final int i) 

Method Source Code

//package com.java2s;
/*/*from   w  ww.  ja v a  2s .c o m*/
 * jfreesteel: Serbian eID Viewer Library (GNU LGPLv3)
 * Copyright (C) 2011 Goran Rakic
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License version
 * 3.0 as published by the Free Software Foundation.
 *
 * This software 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, see
 * http://www.gnu.org/licenses/.
 */

public class Main {
    /**
     * Formats an integer as a hex string of little-endian, non-zero-padded bytes.
     *
     * @param i the integer to format
     * @return the formatted string representing the integer
     */
    public static String int2HexString(final int i) {
        return bytes2HexString(asByteArray(i >>> 24, i >>> 16, i >>> 8, i));
    }

    /**
     * Formats an array of bytes as a string showing values in hex. <p> Silently skips leading zero
     * bytes. <p>
     *
     * @param bytes the bytes to print
     * @return formatted byte string, e.g. an array of 0x00, 0x01, 0x02, 0x03 gets printed as:
     * "01:02:03"
     */
    public static String bytes2HexString(byte... bytes) {
        return bytes2HexStringWithSeparator(":", bytes);
    }

    public static byte[] asByteArray(int... values) {
        byte[] valueBytes = new byte[values.length];
        for (int i = 0; i < values.length; i++) {
            valueBytes[i] = asByte(values[i]);
        }
        return valueBytes;
    }

    private static String bytes2HexStringWithSeparator(String separator, byte... bytes) {
        StringBuffer sb = new StringBuffer();
        boolean first = true;
        for (byte b : bytes) {
            if (first && b == 0x00) {
                continue;
            }
            if (!first) {
                sb.append(separator);
            }
            sb.append(String.format("%02X", b));
            first = false;
        }
        return sb.toString();
    }

    private static byte asByte(int value) {
        return (byte) (value & 0xFF);
    }
}

Related

  1. int2hex(int a, StringBuffer str)
  2. int2hex(int i)
  3. int2hex(int i)
  4. int2HexChar(int val)
  5. int2HexChars(final int data)
  6. int2HexString(int n)
  7. int2hexString(int x)
  8. int2HexString(StringBuilder buf, int value)
  9. int2HexZeroPad(int i)