# Proquints

Proquints are a way to encode numbers in pronounceable consonant/vowel combinations.

## The Letters

The consonants and vowels have their own significance, represented as a 4-bit and 2-bit number, respectively.

### Consonants

Number | Hex | Binary | Character |
---|---|---|---|

0 | `0` |
`0000` |
b |

1 | `1` |
`0001` |
d |

2 | `2` |
`0010` |
f |

3 | `3` |
`0011` |
g |

4 | `4` |
`0100` |
h |

5 | `5` |
`0101` |
j |

6 | `6` |
`0110` |
k |

7 | `7` |
`0111` |
l |

8 | `8` |
`1000` |
m |

9 | `9` |
`1001` |
n |

10 | `a` |
`1010` |
p |

11 | `b` |
`1011` |
r |

12 | `c` |
`1100` |
s |

13 | `d` |
`1101` |
t |

14 | `e` |
`1110` |
v |

15 | `f` |
`1111` |
z |

### Vowels

Number | Hex | Binary | Character |
---|---|---|---|

0 | `0` |
`00` |
a |

1 | `1` |
`01` |
i |

2 | `2` |
`10` |
o |

3 | `3` |
`11` |
u |

## Using Proquints

A 16-bit chunk of data can be represented as a proquint. To do this, we first have to change the number into its binary representation and then calculate the corresponding consonant (`co`

) or vowel (`vo`

):

```
0 1 2 3 4 5 6 7 8 9 A B C D E F
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|con |vo |con |vo |con |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
```

We then go bit by bit through the binary number, creating these 4-bit consonants and 2-bit vowels as we traverse the whole 16-bit number, putting them together into a single word.

To decode this, we just reverse this process, going letter by letter and putting those bits into their proper slots.

If your number is above 16-bits, this process can be extended, with the proquints combined with a hyphen, e.g. `boron-mapin`

.

### Number to Proquint

Let's start with a 16-bit number (0-65,535), like `50,416`

.

First step is to convert it into binary: `1100010011110000`

, with every four bits broken up for readability.

Now we will break up the binary number into meaningful chunks for the proquint conversion: `1100`

, `01`

, `0011`

, `11`

, `0000`

. If we go through the above table, we end up with the proquint `cigub`

.

### Proquint to Number

Let's start with a five letter combination from the tables above: `potus`

.

We go through each character in the table and place their binary representations into a new number: `1010`

, `10`

, `1101`

, `11`

, `1100`

. Putting it all together, it makes the binary number: `1010101101111100`

.

Decoding this into decimal, we end up with `43,900`

.

## References

Last modified: 202201010735