Showing posts with label hexadecimal numbers. Show all posts
Showing posts with label hexadecimal numbers. Show all posts

Wednesday, September 15, 2021

"New Symbols for Base-16 and Base-256 Numerals" Bested on Reddit

In 2017, I co-authored a paper that presented a system of hexadecimal digits that could be combined as ligatures to form base-256 digits.  It's online here.  In 2019, someone posted a system of base-256 digits on Reddit that I and the other author agree is better: Made a surprisingly simple base-256 numerical system...

In our paper, we enumerated 9 desirable qualities for a set of hexadecimal digits in order to evaluate different sets.   This other system has/hasn't the qualities as follows:

  • MNE: Yes
  • STR: No
  • LIG: Yes
  • AMB: Yes
  • DSP: Yes
  • BIN: Yes
  • 0: No
  • 1: No
  • TRN: Yes
This system has 6 of the 9 enumerated qualities.  This is 2 fewer qualities than our published system, but I nevertheless think it is a better system because 1) its base-256 "ligatures" are easier to write and 2) I can remember how these digits encode binary numbers much more easily than our published system, and therefore this system would be easier for me to use.  Well done, u/Tuckertcs, whoever you are.

On another topic, in our paper we suggested the name "sedecisedecimal" for base-256 numbers.  I still think it's the best Latin/Greek-based name for them.  Would anyone seriously prefer "duocentehexaquinquagesimal"?

Monday, September 04, 2017

Alternative Hexadecimal Digits: Published

Valdis and I wrote up our final version of the hexadecimal digits in the form of a proposal and got it published in the IJCSET.  See here.  The proposal includes descriptions and assessments of various other proposed sets of hexadecimal digits.  Unfortunately, we missed a good set called Birkana that are rune-like symbols.

In case anyone wants to see our digits used for practical purposes, I made a JavaScript digital clock that uses our digits to display hours, minutes and seconds as hexadecimal numbers.


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:

Sunday, May 24, 2015

Hexadecimal Digits AND Ligatures!


A few years ago, I posted a set of hexadecimal digits that I invented that could serve as an alternative to the customary 0-9 and A-F.  My idea was to make a set of digits that could be represented in the standard numeric LCD display where the digit somehow represented a binary version of the number it represents. See here.  Now someone has done one better.  In the blog post "We think about yotabytes, but can't handle just one byte", Valdis Vītoliņš describes a hexadecimal of his own invention based on the same idea which adds one innovation; he combines pairs of digits into ligatures, thereby creating a system of 256 symbols that can represent numbers 0 though 255.  That's one symbol for each possible byte value, and the numeric value for each symbol can be read out of its shape with a simple algorithm.  If you're a programmer <ahem>, software engineer, like me, who looks at hex dumps often, this is an intriguing idea.  I might actually try use this.

Thursday, July 02, 2009

Alternative Hexadecimal Digits

I'm not complaining about the convention of using characters 0-9 and A-F as hexadecimal digits. It's a good system; it's easy to learn, since most of us in the Western World have known the meaning of 0-9 and the order of the alphabet since childhood. But what if we could start over with only practical concerns (apart from the value of keeping a well-recognized and heavily-used convention) to guide us?
I can think of a few desirable traits for a set of hexadecimal digits:
  1. They should be easy to learn.
  2. It should be easy to write them by hand quickly without them being ambiguous or difficult to read.
  3. They should be representable using the common LCD/LED displays used in clocks, calculators, etc.
  4. They should depict their binary counterparts somehow. In software, we must sometimes translate between hexadecimal and binary, e.g. to determine whether a given bit in a given word is 1 or 0. If the oneness or zero-ness of each bit in a nibble was visibly represented in its corresponding digit, this translation would be easier.
With these in mind, I came up with an alternative set of hexadecimal digits. Yes, I am a nerd.
In handwritten form:

For LCD/LED displays:





Description of This Alternative

First off, the digits for zero and one are the same as in conventional binary, octal, and decimal.

Next, a definition: the binary composition of a number is the set of integral powers of 2 that add up to that number. For example, the binary composition of 76 is the set {64, 8, 4} or {26, 23, 22}, since its members are integral powers of 2 and they add to 76.

With this definition in mind, the following are true of the alternative digit for a given number 1-15:
  • If one is part of a number's binary decomposition, its digit faces right otherwise it faces left. Equivalently, the digits for even numbers face the same direction as 'e' and 'n', and the digits for odd numbers face the same direction as 'd'.
  • The digit has a stroke across its base if and only if two is part of the number's binary composition.
  • The digit has a stroke across its middle if and only if four is part of the number's binary composition.
  • The digit has a stroke across its top if and only if eight is part of the number's binary composition.

Some Benefits of This Alternative

 Because of these rules, if a hexadecimal digit is depicting a nibble of memory (e.g. in a hex dump program), one only has to look at a certain part of the digit to see if a particular bit is set to 1 or 0. Also, those of you who know about electronic logic gates can tell that the circuitry needed to take a four-bit input representing a number and light up the proper parts of an LED/LCD digit display would be a bit simpler these digits than with the conventional digits.

Update: I've been collaborating with Valdis Vītoliņš on a new set of alternative hexadecimal digits.  They are an improvement on the digits described in this post.  See this blog post.