Balanced Heptadecimal - A Manifesto
If you’ve spent too much time in the company of nerds like me, you’ve maybe heard of the concept of counting in alternate bases. There are all kinds of weirdos out there advocating for different bases than the standard, comfortable decimal (base 10) that most of the world has settled on.
- For instance, many people think dozenal (base 12) is better because 12 has many more factors than 10, so you can display fractions easier.
- Or they think seximal or heximal (base 6) is the best, because it’s like dozenal but doesn’t suck at writing fifths.
- Or they like base 6 but prefer to call it senary except no they don’t, no one calls it that.
- And then there’s hexadecimal or hex, base 16, which we use every day in our computing.
I’m not gonna get too in-depth on what a base is; if you’re here, you probably already know. (If you don’t and you want to look up more information, the search term you’re looking for is positional numbering system.) Instead I’m here to pose a simple question: Why are we focusing only on bases that make our lives easier?
Hi, my name is November and I’m here to talk to you about Balanced Heptadecimal.
A Worse Way To Count
We choose to use balanced heptadecimal, not because it is easy, but because it is hard.
Heptadecimal, aka suboptimal, aka septadecimal maybe except that sounds too much like “septic”, which is what this base is. We’re talking about base 17.
The name “suboptimal” was coined by conlang Youtuber jan Misali as part of their attempt to give every base a name that breaks away from the decimal-centric language we’re all steeped in. It made me laugh, but for the purposes of this page, we’ll be going with “heptadecimal”.
Base 17 isn’t a very good base. 17 is a prime number, so nice clean fractions like 1/2, 1/3, and so forth are represented with infinite repeating digits. Basically the only fractions you can represent nicely are ones with 17 or a multiple thereof in the denominator. In addition, you have to add more digits! Generally we use letters of the alphabet for additional digits (hence why hex code has a bunch of A’s through F’s scattered throughout), but when doing arithmetic with such numbers, it’s a pain to read.
We can “fix” those problems by implementing heptadecimal differently -- instead of using digits for 0 through 16, we’ll use digits for -8 through 8. On this page, I’ll be using the negative circled dingbat characters to represent these digits; ❶ for “-1”, for example.
Wait you can’t do th
Sure I can. Balanced ternary is base 3 but with the digits ❶, 0, and 1 instead of 0, 1, and 2. Signed-digit representation is an established math thing, it’s no big deal.
Unfortunately, this page isn’t accessible to blind readers. Actually, since I haven’t figured out how to pronounce negative digits, this page probably couldn’t even be read out loud at all. (To-do: Create a tonal conlang that uses this numbering system.)
So how does it work?
I lied, I’ll explain a little bit about what a number base really means. When you write a number in regular ordinary base 10, like for example:
...each digit means something different based on where in the number it is. The 1 at the beginning of the number isn’t the same as the 1 that’s one position from the end. Remember math class where they taught you about the “ones place”, “tens place”, “hundreds place”, and so on? In base 10, the number 17,017 really means:
1 * 10,000
+ 7 * 1,000
+ 0 * 100
+ 1 * 10
+ 7 * 1
It’s the same in other bases. Base 12 has a “ones place”, “twelves place”, “144s place”, etc.; base 2 has a “ones place”, “twos place”, “fours place”, and so forth; and base 17 has a ones place, seventeens place, 289s place, 4913s place, and you get the picture.
So the number 17,017, taken as base 17, means:
1 * 83,521
+ 7 * 4,913
+ 0 * 289
+ 1 * 17
+ 7 * 1
And you get the decimal number 117,936.
Note any BS number with only positive digits is written exactly the same way in regular heptadecimal.
Do you really have to use BS as an acronym for balanced heptadecimal? Even though you’re calling it “heptadecimal”, not “suboptimal”?
So how does it work, part II
Now for the negative digits!
They may sound weird, but they work exactly the same way as positive digits. Take the BS number 1❼, for example:
1 * 17
- 7 * 1
And we find that the weird-looking number 1❼ is just our good old friend, decimal 10! Here’s all the BS integers from ❶0 to 10. If any of these representations confuse you, take a second to think about what each of the place values really stands for.
As you can see, we don’t even need a negative sign for negative numbers! If the leftmost (non-zero) digit is negative, then the whole number is negative!
Assorted cool facts
- In a base with signed digits, truncation is the same as rounding!
- To see whether a number is even or odd in BS, add its digits together.
- Want to negate a number? Just flip each of its digits from positive to negative or vice versa. No need for a negative sign!
Anyway, this was just a fun little project I spent a couple days on after re-watching jan Misali’s “A Better Way To Count” video. In doing so, I:
- exercised my handwriting muscles, which have grown stagnant in this digital era,
- re-discovered how to manually find the decimal (or, in this case, heptadecimal) representations of fractions (I had to; no one else had ever bothered to put the balanced heptadecimal fractions online that I could find),
- thoroughly confused my wife,
- and had fun doing math, which would have been a foreign concept to my high-school self. (I’m 21 in balanced heptadecimal. That’s barely out of my teens.)
Obviously I don’t really want to replace the decimal system with, uh, this, (unless...? 😳) but it’s funny to think about.
- Heptadecimal representations of fractions
- Alternatives I considered to the negative circled dingbats
- Other bases you might want to consider using instead of this one
Add a section on arithmetic, maybe? I made a multiplication table, I might as well have a place to put it.
(A white-background version of the table, if you prefer.)