sourcehypertextpublicheximalnl.pug

//- meta
	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())}