Here you can find the source of toHex(Long value, int charCount)
public static String toHex(Long value, int charCount)
//package com.java2s; public class Main { /**//from w w w . jav a2 s .co m * Return a number as hex value with specified char count. */ public static String toHex(Long value, int charCount) { String s = Long.toHexString(value).toUpperCase(); while (s.length() > charCount) { s = s.substring(1); //throw new IllegalStateException("Generated Number larger than " // + "charCount:\nnumber: " + s + "\ncharCount: " + charCount); } if (s.length() < charCount) { int diff = charCount - s.length(); for (int i = 0; i < diff; i++) s = "0" + s; } return (s); } public static String toHex(byte[] data) { StringBuffer buf = new StringBuffer(); for (int i = 0; i < data.length; i++) { int halfbyte = (data[i] >>> 4) & 0x0F; int two_halfs = 0; do { if ((0 <= halfbyte) && (halfbyte <= 9)) buf.append((char) ('0' + halfbyte)); else buf.append((char) ('a' + (halfbyte - 10))); halfbyte = data[i] & 0x0F; } while (two_halfs++ < 1); } return buf.toString(); } }