package net.sf.nmedit.jnmprotocol2.utils;
public class Hexdump {
public static void printHex(byte[] b) {
for (int i = 0; i < b.length; ++i) {
if (i % 16 == 0) {
System.out.print (Integer.toHexString ((i & 0xFFFF) | 0x10000).substring(1,5) + " - ");
}
System.out.print (Integer.toHexString((b[i]&0xFF) | 0x100).substring(1,3) + " ");
if (i % 16 == 15 || i == b.length - 1)
{
int j;
for (j = 16 - i % 16; j > 1; --j)
System.out.print (" ");
System.out.print (" - ");
int start = (i / 16) * 16;
int end = (b.length < i + 1) ? b.length : (i + 1);
for (j = start; j < end; ++j)
if (b[j] >= 32 && b[j] <= 126)
System.out.print ((char)b[j]);
else
System.out.print (".");
System.out.println ();
}
}
System.out.println();
}
}