`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]] -