# Number systems past base 36?

**URL:** <https://boards.straightdope.com/t/number-systems-past-base-36/179199>\
**Category:** Factual Questions\
**Created:** [June 2, 2003, 7:44pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199 "2003-06-02T19:44:38Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![moejuck](https://avatars.discourse-cdn.com/v4/letter/m/57b2e6/32.png) [@moejuck](https://boards.straightdope.com/u/moejuck)\
**Post date:** [June 2, 2003, 7:44pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/1 "2003-06-02T19:44:38Z")

</div>

I understand that when we get past the decimal system then we can use letters to replace digits larger than 9. For example, in the Hexadecimal system, we use “a” to represent 10 ones, 10 sixteens, and so on…

What happens when we get past “z”? In other words how do we represent 36 of any place value in the base 37 system? Thanks for your help in advance.  
-moejuck  
“Religion is when God, like Elvis, has left the building.” Bono

---

<div class="post-metadata">

**Author:** ![Q.E.D](https://avatars.discourse-cdn.com/v4/letter/q/51bf81/32.png) [@Q.E.D](https://boards.straightdope.com/u/Q.E.D)\
**Post date:** [June 2, 2003, 7:49pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/2 "2003-06-02T19:49:56Z")

</div>

Well, we have upper and lower case letters, plus a handful of symbols. This is just what is done in some base-64 encoding schemes.

---

<div class="post-metadata">

**Author:** ![dwc1970](https://avatars.discourse-cdn.com/v4/letter/d/a183cd/32.png) [@dwc1970](https://boards.straightdope.com/u/dwc1970)\
**Post date:** [June 2, 2003, 7:52pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/3 "2003-06-02T19:52:48Z")

</div>

The ASCII system could be used as a base 256 number system (and probably is in many programming applications). Of course 0-9 would not be represented by their decimal counterparts, but by their ASCII values (48-57).

---

<div class="post-metadata">

**Author:** ![friedo](https://avatars.discourse-cdn.com/v4/letter/f/8edcca/32.png) [@friedo](https://boards.straightdope.com/u/friedo)\
**Post date:** [June 2, 2003, 8:02pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/4 "2003-06-02T20:02:07Z")

</div>

FWIW, the standard Base64 encoding scheme uses 0-9, A-Z, a-z and = and + as the 64 symbols. Going beyond that, you could use Greek or Hebrew letters, make up symbols, or use combinations of symbols. (e.g., decree that every “digit” be made up of two symbols from a given set, thus increasing the available digits by a power of two.)

---

<div class="post-metadata">

**Author:** ![sailor](https://avatars.discourse-cdn.com/v4/letter/s/a587f6/32.png) [@sailor](https://boards.straightdope.com/u/sailor)\
**Post date:** [June 2, 2003, 8:06pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/5 "2003-06-02T20:06:57Z")

</div>

You can just use decimal numbers separated by dots. That’s how you represent IP addresses: 210.102.98.2

---

<div class="post-metadata">

**Author:** ![Mangetout](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mangetout/32/19_2.png) [@Mangetout](https://boards.straightdope.com/u/Mangetout)\
**Post date:** [June 2, 2003, 8:34pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/6 "2003-06-02T20:34:20Z")

</div>

Hexadecimal only uses A-F for convenience, for that matter, decimal only uses 0-9 out of habit; they are just symbols - there would be nothing to stop you inventing your own set of 57 unique symbols in order to work in base 57.

---

<div class="post-metadata">

**Author:** ![yabob](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/yabob/32/2821_2.png) [@yabob](https://boards.straightdope.com/u/yabob)\
**Post date:** [June 2, 2003, 8:43pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/7 "2003-06-02T20:43:44Z")

</div>

> [@](#):
>
> \*Originally posted by friedo \*  
> \*\*FWIW, the standard Base64 encoding scheme uses 0-9, A-Z, a-z and = and + as the 64 symbols. … \*\*

Minor nitpick - = is the Base64 pad character, not a digit. 62 and 63 are represented with + and /. Gripe - they could have made better character choices. Given the purpose of Base64, one is likely to want to send Base64 strings in URL arguments, and the stupid + has to be escaped. / and = are also likely to need escaping in too many contexts.

---

<div class="post-metadata">

**Author:** ![Terminus\_Est](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/terminus_est/32/3087_2.png) [@Terminus\_Est](https://boards.straightdope.com/u/Terminus_Est)\
**Post date:** [June 2, 2003, 8:44pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/8 "2003-06-02T20:44:32Z")

</div>

The Mesopotamians used a [sexagesimal](http://it.stlawu.edu/~dmelvill/mesomath/Bignums.html) system with (you guessed it) sixty different cuneiform symbols.

---

<div class="post-metadata">

**Author:** ![Trinopus](https://avatars.discourse-cdn.com/v4/letter/t/2bfe46/32.png) [@Trinopus](https://boards.straightdope.com/u/Trinopus)\
**Post date:** [June 2, 2003, 9:01pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/9 "2003-06-02T21:01:55Z")

</div>

> [@](#):
>
> \*Originally posted by Mangetout \*  
> \*\*Hexadecimal only uses A-F for convenience, for that matter, decimal only uses 0-9 out of habit; they are just symbols - there would be nothing to stop you inventing your own set of 57 unique symbols in order to work in base 57. \*\*

Ketchup pickles dill-pickles, butter-pickles ketchup ketchup.

Trinopus

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [June 2, 2003, 10:22pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/10 "2003-06-02T22:22:41Z")

</div>

You can use an n x n grid of dots, with each dot either black or white, to represent numbers in base 2[sup]n[sup]2[/sup][/sup].

---

<div class="post-metadata">

**Author:** ![Q.E.D](https://avatars.discourse-cdn.com/v4/letter/q/51bf81/32.png) [@Q.E.D](https://boards.straightdope.com/u/Q.E.D)\
**Post date:** [June 2, 2003, 10:29pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/11 "2003-06-02T22:29:53Z")

</div>

> [@](#):
>
> \*Originally posted by ultrafilter \*  
> \*\*You can use an n x n grid of dots, with each dot either black or white, to represent numbers in base 2[sup]n[sup]2[/sup][/sup]. \*\*

Yes, but really that’s little different from binary-coded base 2[sup]n[sup]2[/sup][/sup]. You’re basically just using n[sup]2[/sup] binary digits to represent each digit in your base.

---

<div class="post-metadata">

**Author:** ![ultrafilter](https://avatars.discourse-cdn.com/v4/letter/u/3d9bf3/32.png) [@ultrafilter](https://boards.straightdope.com/u/ultrafilter)\
**Post date:** [June 2, 2003, 10:45pm UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/12 "2003-06-02T22:45:17Z")

</div>

The two systems are isomorphic. It’s just a bit easier to visualize dots in a grid and to grasp each combination as a unique symbol.

---

<div class="post-metadata">

**Author:** ![friedo](https://avatars.discourse-cdn.com/v4/letter/f/8edcca/32.png) [@friedo](https://boards.straightdope.com/u/friedo)\
**Post date:** [June 3, 2003, 12:05am UTC](https://boards.straightdope.com/t/number-systems-past-base-36/179199/13 "2003-06-03T00:05:06Z")

</div>

> [@](#):
>
> \*Originally posted by yabob \*  
> \*\*Minor nitpick - = is the Base64 pad character, not a digit. 62 and 63 are represented with + and /. Gripe - they could have made better character choices. Given the purpose of Base64, one is likely to want to send Base64 strings in URL arguments, and the stupid + has to be escaped. / and = are also likely to need escaping in too many contexts. \*\*

:smack:

My bad. Where I work we actually use Base64 in URLs a lot, but we replace + and / with [and], which do not need to be escaped.
