/**
* Conversion routines for handling hexadecimal numbers.
- *
+ *
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
- * @version $Id$
*/
public class Hex {
/**
* Converts the given byte array to a hexadecimal string.
- *
+ *
* @param dataBytes
* The bytes to convert
* @return A string of hexadecimal numbers
*/
public static String toHex(byte[] dataBytes) {
StringBuilder hexString = new StringBuilder(dataBytes.length * 2);
- for (byte dataByte: dataBytes) {
+ for (byte dataByte : dataBytes) {
String hexByte = "0" + Integer.toHexString(dataByte & 0xff);
hexString.append(hexByte.substring(hexByte.length() - 2));
}
return hexString.toString();
}
+ /**
+ * Converts the given value to a hexadecimal string and zero-pads it to the
+ * given number of digits.
+ *
+ * @param value
+ * The value to convert
+ * @param digits
+ * The number of digits
+ * @return The formatted hexadecimal value
+ */
+ public static String toHex(long value, int digits) {
+ StringBuilder hexString = new StringBuilder();
+ hexString.append(Long.toHexString(value));
+ while (hexString.length() < digits) {
+ hexString.insert(0, '0');
+ }
+ return hexString.toString();
+ }
+
}