slug: heximaal
lang: nl
translates: heximal
title: Heximaal
pageCreated: "2020-01-15"
pageTranslated: "2023-08-27T20:49Z"
pageUpdated: "2023-08-27T20:49Z"
extends en.pug
block header
h1 Heximaal #[small Of, hoe men écht hexadecimaal uitspreekt]
block content
p Many debates have been had about the “correct” way to pronounce hexadecimal numbers. (If you ask me, you should just stick to the standard and go with the Nato spelling alphabet: alpha, bravo, charlie…) But what if you don’t want to just #[em read] hexadecimal? What if you want to… count?
p A great number of brave souls have tried, but more often than not, their attempts turn out utter nonsense. #[i Christeen], #[i dickety-one], and #[i fimteek] are just some of the horrors found in existing ideas for hexadecimal numbering. Armed with inspiration from the base-6 #[a(href='https://www.seximal.net') seximal], i set out to make a better system. Introducing: #[strong heximal].
+h2('Van 1 tot f tellen')
p Counting from #[+xn 0]#[+sn('0')] to #[+xn C] is easy:
+sn('0')
p I’ll be using #[+x glowing green text] to indicate heximal numbers, with #[+d darker italics] for their decimal equivalents.
+table
thead
tr
th Getal
th Woord
tbody
tr
td: +xn 1
td één
tr
td: +xn 2
td twee
tr
td: +xn 3
td drie
tr
td: +xn 4
td vier
tr
td: +xn 5
td vijf
tr
td: +xn 6
td zes
tr
td: +xn 7
td zeven
tr
td: +xn 8
td acht
tr
td: +xn 9
td negen
tr
td #[+xn A] #[+dn("(10)")]
td tien
tr
td #[+xn B] #[+dn("(11)")]
td elf
tr
td #[+xn C] #[+dn("(12)")]
td twaalf
p Where we go from here is a challenge. Given that this is base #[+d sixteen], we can’t exactly say #[i #[+d thirteen]], #[i #[+d fourteen]], or #[i #[+d fifteen]]; instead, we can shorten the letters of the Nato spelling alphabet: #[+x del] from #[i delta], #[+x eck] or #[+x ech]#[+sn('2')] from #[i echo], and #[+x fox] from #[i foxtrot].
+sn('2')
p “Eck” can get confusing when mixed in with all those hex-es and sex-es; #[i ech] is thus provided as an alternative, said with the hard #[i ch] sound of #[i loch] and #[i Channukah].
+table
thead
th Getal
th Woord
tbody
tr
td #[+xn D] #[+dn(`(13)`)]
td del
tr
td #[+xn E] #[+dn(`(14)`)]
td ech
tr
td #[+xn F] #[+dn(`(15)`)]
td fox
+h2('10 to FF')
p #[+xn 10] is called #[+x hex], and as in any sensible system, right after that comes #[+x hex-one].
+table
thead
th Getal
th Woord
tbody
tr
td #[+xn 10] #[+dn('(16)')]
td hex
tr
td #[+xn 11] #[+dn('(17)')]
td eenenhex
tr
td #[+xn 12] #[+dn('(18)')]
td tweeënhex
tr
td #[+xn 13] #[+dn('(19)')]
td drieënhex
tr
td(colspan='2')
i Enzovoort…
tr
td #[+xn 1F] #[+dn('(31)')]
td foxenhex
p Numbering continues along the same lines as decimal’s #[i #[+d('-ty')]], with the relevant suffix being #[i #[+x('-ex')]].
+table
thead
tr
th Getal
th Woord
tbody
tr
td #[+xn 20] #[+dn('(32)')]
td twinnex
tr
td #[+xn 21] #[+dn('(33)')]
td eenentwinnex
tr
td #[+xn 30] #[+dn('(48)')]
td dertex
tr
td #[+xn 40] #[+dn('(64)')]
td vierex
tr
td #[+xn 50] #[+dn('(80)')]
td vijfex
tr
td #[+xn 60] #[+dn('(96)')]
td zesex
tr
td #[+xn 69] #[+dn('(105)')]
td negenenzesex
tr
td #[+xn 70] #[+dn('(112)')]
td zevenex
tr
td #[+xn 80] #[+dn('(128)')]
td tachtex
tr
td #[+xn 90] #[+dn('(144)')]
td negenex
tr
td #[+xn A0] #[+dn('(160)')]
td tienex
tr
td #[+xn B0] #[+dn('(176)')]
td elfex
tr
td #[+xn C0] #[+dn('(192)')]
td twaalfex
tr
td #[+xn D0] #[+dn('(208)')]
td deltex
tr
td #[+xn E0] #[+dn('(224)')]
td echex
tr
td #[+xn F0] #[+dn('(240)')]
td foxex
tr
td #[+xn FF] #[+dn('(255)')]
td foxenfoxex
+h2('Higher and higher')
p The logical term for a value of #[+xn 100] is — what else? — a #[+x byte].
+table
thead
tr
th Getal
th Woord
tbody
tr
td #[+xn 100] #[+dn('(256)')]
td byte
tr
td #[+xn 3E8] #[+dn('(1000)')]
td driebyteachtenechex
tr
td #[+xn 7E7] #[+dn('(2023)')]
td zevenbytezevenenechex
tr
td #[+xn 1000] #[+dn('(4096)')]
td hexbyte
tr
td #[+xn 2710] #[+dn('(10.000)')]
td zevenentwinnexbytehex
p Programming languages which particularly concern themselves with memory like to call any number below #[+xn 10#[sup 4]] a #[+x short], a term we’ll appropriate for our own evil purposes.
+table
thead
tr
th Getal
th Woord
tbody
tr
td #[+xn 1.0000] #[+dn('(65.536)')]
td één short
tr
td #[+xn F.4240] #[+decexp('1,00','6',true,'1 miljoen')]
td fox short tweeënvierexbytevierex
tr
td #[+xn 10B.000] #[+decexp('1,75','7',true,'17.5 miljoen')]
td bytetwaalf short#[+sn('4')]
tr
td #[+xn 13C9.0000] #[+decexp('3,32','8',true,'332 miljoen')]
td drieënhexbytenegenentwaalfex short#[+sn('5')]
tr
td #[+xn 3B9A.CA00] #[+decexp('1,00','9',true,'1 miljard')]
td elfendertexbytetienennegenex short…
+sn('4')
p The total population of the Netherlands.
+sn('5')
p The total population of the United States.
p Building upon #[i #[+x short]] in the manner of decimal’s #[i #[+d -illion]] series, we can reach some truly dizzying mathematical heights…
+table
thead
tr
th Getal
th Woord
th Decimaal
tbody
tr
td: +xn 10#[sup 8]
td één bort
td: +decexp('4,29','9',false,'4,29 miljard')
tr
td: +xn 1,DF×10#[sup 8]
td één bort, foxendeltexbyte short#[+sn('6')]
td: +decexp('8,03','9',false,'8,03 miljard')
tr
td: +xn 10#[sup C]
td één trort
td: +decexp('2,80','14',false,'280 biljoen')
tr
td: +xn 10#[sup 10]
td één quadrort
td: +decexp('1,84','19',false,'18,4 triljoen')
tr
td: +xn 2,58×10#[sup 10]
td twee quadrort, achtenvijfexbyte trort#[+sn('7')]
td: +decexp('4,33','19',false,'43,3 triljoen')
tr
td: +xn 7,F8×10#[sup 13]
td zevenbyteachtenfoxex quadrort#[+sn('8')]
td: +decexp('6,02','23',false,'602 triljard')
tr
td: +xn 10#[sup 14]
td één quinort
td: +decexp('1,21','24',false,'1,21 quadriljoen')
tr
td: +xn 10#[sup 18]
td één sexort
td: +decexp('7,92','28',false,'79,2 quadriljard')
tr
td: +xn 10#[sup 1C]
td één septort
td: +decexp('5,19','33',false,'5,19 quintiljard')
tr
td: +xn 10#[sup 20]
td één octort
td: +decexp('3,40','38',false,'340 sextiljoen')
tr
td: +xn 10#[sup 24]
td één nonort
td: +decexp('2,23','43',false,'22,3 septiljoen')
tr
td: +xn 10#[sup 28]
td één decort
td: +decexp('1,46','48',false,'1,46 octiljoen')
tr
td: +xn 10#[sup 2C]
td één elort
td: +decexp('9,58','52',false,'95,8 octiljard')
tr
td: +xn 10#[sup 30]
td één twalort
td: +decexp('6,28','57',false,'6,28 noniljard')
tr
td: +xn 10#[sup 34]
td één deltort
td: +decexp('4,11','62',false,'411 deciljoen')
tr
td: +xn 10#[sup 38]
td één echort
td: +decexp('2,70','67',false,'27 undeciljoen')
tr
td: +xn 10#[sup 3C]
td één foxort
td: +decexp('1,77','72',false,'1,77 duodeciljoen')
tr
td: +xn 10#[sup 40]
td één hexort
td: +decexp('1,16','77',false,'116 duodeciljard')
tr
td: +xn 10#[sup 44]
td één hexishort
td: +decexp('7,59','81',false,'7,59 tredeciljard')
tr
td: +xn 10#[sup 48]
td één hexibort
td: +decexp('4,97','86',false,'497 quattordeciljoen')
tr
td: +xn 10#[sup 80]
td één bihexort
td: +decexp('1,34','154',false,'13,4 quinvigintiljard')
tr
td: +xn 10#[sup C0]
td één trihexort
td: +decexp('1,55','231',false,'1,55… novemtrigintiljoen?')
tr
td: +xn 10#[sup 100]
td één quadrihexort #[i of] hexgol
td: +decexp('1,80','308',false,'180 unquinquagintiljoen')
tr
td: +xn 10#[sup 400]
td één bytort
td: +decexp('1,04','1233',false,'Beats me, mate,')
tr
td: +xn 10#[sup 4000]
td één hexibytort
td: +decexp('2,00','19.278',false,'Do you think God stays in heaven because he, too, lives in fear of what he’s created?')
+sn('6')
p The total population of the whole world (give or take).
+sn('7')
p The number of ways you can scramble a Rubik’s cube.
+sn('8')
p #[a(href='https://en.wikipedia.org/wiki/Avogadro_constant') Avogadro’s number]: the amount of atoms in just #[+d twelve] mere grammes of carbon.
p I’ve decided to end the naming scheme just short (heh) of what would otherwise be a "shortort", to save it from collapsing in on itself. This means that the largest named number is… [#[i inhales]]
+table
thead
tr
th Number
th Word
th In decimal
tbody
tr
td: +xn 10#[sup 40.000]−1
td foxenfoxexbytefoxenfoxex foxihexifoxibytifoxihexifoxort, foxenfoxexbytefoxenfoxex foxihexifoxibytifoxihexeckort, […] foxenfoxexbytefoxenfoxex
td: +decexp('6,74', '315.652', false)
p …Oh, go on then. Two more.
+table
thead
tr
th Number
th Word
th In decimal
tbody
tr
td: +xn 10#[sup 10#[sup 100]]
td Hexgolplex
td: i.decimal.numeric 10#[sup 2.16×10#[sup 308]]
tr
td: +xn 10#[sup 10#[sup 10#[sup 100]]]
td Hexgolplexiaan
td: i.decimal.numeric 10#[sup 10#[sup 2.16×10#[sup 308]]]
block timestamps
ul.footer-timestamps
li #{tr('pan.pageHistory.created')(pageCreated).replace(/[0-9]+/g, match => parseInt(match).toString(16).toLowerCase())}
if pageTranslated
li #{tr('pan.pageHistory.translated')(pageTranslated).replace(/[0-9]+/g, match => parseInt(match).toString(16).toLowerCase())}
if pageUpdated
li #{tr('pan.pageHistory.updated')(pageUpdated).replace(/[0-9]+/g, match => parseInt(match).toString(16).toLowerCase())}