See the question and my original answer on StackOverflow

There is a ByteViewer Control directly available in the .NET Framework. Here is how you can use it in a sample Winforms C# application (note: you need to reference the System.Design assembly):

public Form1()
    ByteViewer bv = new ByteViewer();
    bv.SetFile(@"c:\windows\notepad.exe"); // or SetBytes

And here is how it looks like:

enter image description here