Sunday, June 21, 2015

Alternative Hexadecimal Digits

I've been collaborating with Valdis Vītoliņš on hexadecimal digits.  The result is a new set of digits:

They follow a design where the horizontal strokes represent 1, 2 and 4 in the binary composition of the number which each digit is supposed to represent.  The rules for constructing the digits are:
  • 0 is represented by a digit that looks like an 'o' or a '6'.
  • 8 is represented by a digit that looks like a miniscule rho or a 'P'.
  • Numbers 1-7 and 9-15 are represented by digits whose shape follows this plan:
We considered several possible sets of digits before settling on this one.  We choose this new set of digits because 
  1. We find it is the easiest to encode and decode.
  2. We find that pairs of these digits can be combined into readable ligatures.
Valdis has created fonts for the digits and ligatures, which I have incorporated into a branch of the Hex Editor plugin for Notepad++ .  It has all the features of the mainline Hex Editor plugin, but also offers the option of viewing hexadecimal data with the new characters in place of the traditional 0-9A-F.  If you'd like to use it, then download this zip file and run the setup executable contained therein:
The fonts look like this:

1 comment:

Valdis Vitolins said...

Great work, Mack!
I suppose main improvements in such alternative view of binary data are:
1. Positional shapes of digits improve finding bit patterns in stream of bytes,
2. Ligatures allow to show value of one byte as one character. Eventually it could make whole sub-area of binary editors obsolete, as currently most of them are designed around issue that one byte in numeric value is shown with two characters.