Skip to content

Instantly share code, notes, and snippets.

@ramonsmits
Created January 8, 2025 20:14
Show Gist options
  • Save ramonsmits/dcbb0e214ca6dfb2b9777577d57996f7 to your computer and use it in GitHub Desktop.
Save ramonsmits/dcbb0e214ca6dfb2b9777577d57996f7 to your computer and use it in GitHub Desktop.
c# hex dump that formats bytes like many common hex viewers
static void DumpHex(byte[] data, int bytesPerLine = 16)
{
if (data == null) throw new ArgumentNullException(nameof(data));
var sb = new StringBuilder();
for (int offset = 0; offset < data.Length; offset += bytesPerLine)
{
sb.Clear();
sb.AppendFormat("{0:X8} ", offset);
for (int i = 0; i < bytesPerLine; i++)
{
if (offset + i < data.Length) sb.AppendFormat("{0:X2} ", data[offset + i]);
else sb.Append(" ");
if ((i + 1) % 4 == 0) sb.Append(" ");
}
for (int i = 0; i < bytesPerLine; i++)
sb.Append(offset + i < data.Length && data[offset + i] >= 32 && data[offset + i] <= 126
? (char)data[offset + i]
: '.');
Console.WriteLine(sb);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment