Skip to content

Instantly share code, notes, and snippets.

@Saiv46
Last active November 21, 2022 06:10
Show Gist options
  • Save Saiv46/816110810022bd5d23769259fc47f355 to your computer and use it in GitHub Desktop.
Save Saiv46/816110810022bd5d23769259fc47f355 to your computer and use it in GitHub Desktop.
Binary Encoding for Nonbinary People

Created by Saiv46 as asnwer for "When Binary Code Won’t Accommodate Nonbinary People" article.

Revision 2: Thanks @[email protected] for feedback and help

Tillie - gender/sexuality encoding format

This format created compatible with databases storing user's sex as boolean or uint8. Numbers here are represented both in binary and decimal.

Structure

Tillie-code consists of three components:

  • 0b00000XXX - Gender identity
  • 0bZ0000000 - Non-disclosure flag
  • 0b0YYYY000 (optional) - Sexual identity

Gender identity

Gender can be stored in 3 least significant bits of traits:

  • 1 - Masculitiy
  • 2 - Femininity
  • 4 - Fluidity

Masculity and femininity can be both or neither specified for bigender and agender respectfully. Adding fluidity trait specifies genders that can transition or fluid into any.

Code Fluid. Fem. Masc. Gender
000 (0) No No No Agender
001 (1) No No Yes (+1) Male
010 (2) No Yes (+2) No Female
011 (3) No Yes (+2) Yes (+1) Ambigender
100 (4) Yes (+4) No No Agenderfluid
101 (5) Yes (+4) No Yes (+1) Male-fluid
110 (6) Yes (+4) Yes (+2) No Female-fluid
111 (7) Yes (+4) Yes (+2) Yes (+1) Bigender

That should be enough for 99% of people to represent their genders this way. Note: This should not be viewed as list of definite genders, but as list of umbrellas of genders to be under.

Non-disclosure flag

Sometimes people may choose to NOT disclosure their gender identity. In software it should be respected, and value of 10000000 (128) should be used.

Sexual identity

Sexuality is stored from 4th up to 7th most significant bits, leaving 4 traits:

  • 1 - Femininity-attracted
  • 2 - Masculitiy-attracted
  • 4 - Attacted by other things
  • 8 - Demi

For sexuality, there may be difference for some genders - they labelled with (F) or (M).

Code Demi Other Masc-attr Fem-attr Sexuality - (F)eminine / (M)asculine
0000 (0) No No No No Asexual
0001 (1) No No No Yes (+1) Gynesexual - Hetero(M) / Homo(F)
0010 (2) No No Yes (+2) No Androsexual - Homo(M) / Hetero(F)
0011 (3) No No Yes (+2) Yes (+1) Bisexual
0100 (4) No Yes (+4) No No unspecified (ambiquity-attracted)
0101 (5) No Yes (+4) No Yes (+1) Gynesexual (exclusionary)
0110 (6) No Yes (+4) Yes (+2) No Androsexual (exclusionary)
0111 (7) No Yes (+4) Yes (+2) Yes (+1) Pansexual

In second half, entries are skipped to avoid repeatability. You may probably add "demi-" to sexuality of first half if unsure.

Code Demi Other Masc-attr Fem-attr Sexuality - (F)eminine / (M)asculine
1000 (8) Yes (+8) No No No Aceflux
1011 (11) Yes (+8) No Yes (+2) Yes (+1) Semibisexuality
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment