`Radix` is the word used for "Base" when it comes to counting bases. Any non-zero integer could be used as a radix. In practice there are only probably 3 worth learning: [[Binary]], Decimal, and Hexidecimal.
| Base | Name | Characters | Usage |
| ---- | ---------------- | :--------------------------------------------------------------------- | :------------------------------------------------------------ |
| 2 | Binary | 01 | Computers |
| 3 | Trinary | 012 | That one joke, mostly - or things with a "null" state |
| 8 | Octal | 01234567 | Computing, sort of, e.g. [[UTF-8]] can be written as octal |
| 10 | Decimal | 0123456789 | Human counting |
| 16 | Hexidecimal | 0123456789ABCDEF | Computing, e.g. [[HTML CSS and JavaScript\|CSS]] color values |
| 36 | Hextrigesimal | 0123456789ABCEDEFGHIJKLMOPQRSTUVWXYZ | |
| 60 | Sexagesimal | No standard? | |
| 64 | Tetrasexagesimal | See [RFC4648](https://datatracker.ietf.org/doc/html/rfc4648#section-4) | |
## Binary
> [!info] Base 2
> 0, 1
See [[Binary]].
Binary math is the same as regular math... but because it's not that difficult to design and build binary adder using basic [[Boolean Logic|Digital Logic]] gates, binary works great in a computer. Also because of the all-or-nothing nature of [[Analog vs Digital|digital (instead of analog)]].
## Decimal
> [!info] Base 10
> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Base 10. Normal counting numbers. Because we have 10 fingers.
## Hexadecimal
> [!info] Base 16
> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Hexadecimal is used because it's a more concise way to represent [[Bits, Nibbles, & Bytes]], while also being unambiguous and universal. Everyone uses 0 to 9 then A to F.
Every character in hexadecimal is one nibble. Two characters is exactly one byte. `6b` = `0110 1011`.
## Base 32
Note there's a bunch of variations of Base32 which are used for various things. Each variation cuts out certain letters for certain reasons (avoiding [[Ambiguity]] and swear words, mostly). RFC 4648 includes a Base32 variant, which goes A to Z, then "234567".
## Base64
> [!info] Base 64, per RFC4648 has two standard approaches that are 95% similar
> `A` to `Z` → then `a` → `z` then `0` → `9`, then `+` then `/` .... or
> `A` to `Z` → then `a` → `z` then `0` → `9`, then `-` then `_`
Base64 is built into [[JavaScript]] number-to-string [[Data Type Coercion]]. Each Base64 number represents **six binary digits**, which works well if you're representing an even multiple of **24** binary bits (because 24 is divisible by 6 and by 8).
## Base128
## Base256
Would natively map to an entire **byte**. There is no standard for this. Realistically you could just encode a number to binary, then represent that number in [[Character Encoding|Unicode]] , then decode the unicode and viola you'd get back to your number. This would be a dumb thing to do in practice, though. It's too complicated to be useful, and to simple to be a cypher.
I did find this neat [[Constructed Language]] for Base256, though:
![[Pasted image 20260210133026.png]]
This is the only possible context where it makes sense to say *"I'm negative X cubed years old"*.
****
# More
## Source
- Self
- https://www.reddit.com/r/conlangs/comments/dcln4t/made_a_surprisingly_simple_base256_numerical/
## Related
- [[Unambiguous Characters]]
-