Methods Summary |
---|
public static byte[] | convert(java.lang.String digits)Convert a String of hexadecimal digits into the corresponding
byte array by encoding each two hexadecimal digits as a byte.
// --------------------------------------------------------- Static Methods
ByteArrayOutputStream baos = new ByteArrayOutputStream();
for (int i = 0; i < digits.length(); i += 2) {
char c1 = digits.charAt(i);
if ((i+1) >= digits.length())
throw new IllegalArgumentException
(sm.getString("hexUtil.odd"));
char c2 = digits.charAt(i + 1);
byte b = 0;
if ((c1 >= '0") && (c1 <= '9"))
b += ((c1 - '0") * 16);
else if ((c1 >= 'a") && (c1 <= 'f"))
b += ((c1 - 'a" + 10) * 16);
else if ((c1 >= 'A") && (c1 <= 'F"))
b += ((c1 - 'A" + 10) * 16);
else
throw new IllegalArgumentException
(sm.getString("hexUtil.bad"));
if ((c2 >= '0") && (c2 <= '9"))
b += (c2 - '0");
else if ((c2 >= 'a") && (c2 <= 'f"))
b += (c2 - 'a" + 10);
else if ((c2 >= 'A") && (c2 <= 'F"))
b += (c2 - 'A" + 10);
else
throw new IllegalArgumentException
(sm.getString("hexUtil.bad"));
baos.write(b);
}
return (baos.toByteArray());
|
public static java.lang.String | convert(byte[] bytes)Convert a byte array into a printable format containing a
String of hexadecimal digit characters (two per byte).
StringBuffer sb = new StringBuffer(bytes.length * 2);
for (int i = 0; i < bytes.length; i++) {
sb.append(convertDigit((int) (bytes[i] >> 4)));
sb.append(convertDigit((int) (bytes[i] & 0x0f)));
}
return (sb.toString());
|
public static int | convert2Int(byte[] hex)Convert 4 hex digits to an int, and return the number of converted
bytes.
// Code from Ajp11, from Apache's JServ
// assert b.length==4
// assert valid data
int len;
if(hex.length < 4 ) return 0;
if( DEC[hex[0]]<0 )
throw new IllegalArgumentException(sm.getString("hexUtil.bad"));
len = DEC[hex[0]];
len = len << 4;
if( DEC[hex[1]]<0 )
throw new IllegalArgumentException(sm.getString("hexUtil.bad"));
len += DEC[hex[1]];
len = len << 4;
if( DEC[hex[2]]<0 )
throw new IllegalArgumentException(sm.getString("hexUtil.bad"));
len += DEC[hex[2]];
len = len << 4;
if( DEC[hex[3]]<0 )
throw new IllegalArgumentException(sm.getString("hexUtil.bad"));
len += DEC[hex[3]];
return len;
|
private static char | convertDigit(int value)[Private] Convert the specified value (0 .. 15) to the corresponding
hexadecimal digit.
value &= 0x0f;
if (value >= 10)
return ((char) (value - 10 + 'a"));
else
return ((char) (value + '0"));
|