Okuma nombrosistemo
Okuma nombrosistemo estas pozicia nombrosistemo kun la bazo 8. Ĝi uzas nur 8 ciferojn por skribi nombrojn, nome: 0, 1, 2, 3, 4, 5, 6 kaj 7.
La nombro 8 (en la kutima dekuma skribo, t.e. 810) okume estas skribata kiel 10, aŭ pli precize 108 (oni legu: «dek okume»). Ekzamenante la ciferojn de okuma nombroprezento de dekstre maldekstren, oni atribuas al ĉiu sekva ciferpozicio 8-oble pli grandan pezon ol al la antaŭa, t.e. la ciferojn de okuma nombroprezento oni muliplikas per potencoj de 8: 8, 64, 512, …, 8n …
Por transformi dekuman nombroprezenon en la okuman, oni sinsekve dividas ĝin per 8 kaj skribas ricevitajn restojn en la ordo ekde la lasta, kaj finas per la lasta kvociento. Ekzemple, por 90010:
- 900 │ 8
- ¯ 8 ├────
- ── │ 112 │ 8
- 10 ¯ 8 ├───
- ¯ 8 ─── │ 14 │ 8
- ── 32 ¯ 8 ├──
- 20 ¯32 ── │ 1
- ¯16 ── 6
- ── 0
- 4
- 900 │ 8
Do, 90010 = 16048. Alivorte,
- 90010 = 4×80 + 0×8¹ + 6×8² + 1×8³ = 4 + 0 + 384 + 512.
Tiu sistemo apenaŭ estas uzata ekster komputado, kvankam historie ĝi estis komunuza en almenaŭ 2 indiĝenaj lingvoj Amerikaj (la jukia, en:Yuki language kaj la pamea, en:Pame languages). En tiuj lingvoj ĝi respondis al la maniero nombri per fingraj interspacoj aŭ per la fingrartikoj de pugnigitaj manoj.
La okuma nombrosistemo en komputado
redaktiLa utilo de la okuma nombroprezento en komputado estas ŝuldata al facileco de konvertado inter la nombrosistemoj okuma (preskaŭ same mallonga, kiel la dekuma) kaj la duuma (uzata de la komputiloj, sed tre longa): sufiĉas anstataŭigi ĉiun ciferon okuman per ĝia prezento duuma — aŭ inverse, anstataŭigi ĉiun triopon da duumaj ciferoj per responda okuma cifero. Jenas la duumaj prezentoj de la okumaj ciferoj:
08 = 0002 18 = 0012 28 = 0102 38 = 0112 48 = 1002 58 = 1012 68 = 1102 78 = 1112
Tial ekz-e
- 25418 = [ 28 | 58 | 48 | 18 ] = [ 0102 | 1012 | 1002 | 0012 ] = 0101011000012;
- 10101111002 = 12010211121002 = 18287848 = 12748.
En la programlingvoj por la okumaj numeraloj oni plej ofte uzas la
notacion de C, antaŭmetante la ciferon
0
:
0435
= 4358 = 28510 =285
En konstantoj prezentantaj signoĉenojn gravaj programlingvoj (ekz‑e C, Perl) allasas uzon de okumaj kodoj kun antaŭmetita oblikvo (eskapilo):
$ perl -e 'print "Jen \100 (heliko)\n"'
Jen @ (heliko)
Avantaĝo de okuma nombroprezento estas ke ĝi uzas la ciferojn, kiel estas kutime por la nombroj (la 16-uma nombrosistemo krome uzas 6 literojn por prezenti la mankantajn ciferojn 16-umajn pli grandajn ol 9). Tamen kun la disvastiĝo de 8-bitaj bajtoj (bitokoj) la 16-uma sistemo eklipsis la okuman, ĉar ĝi pli bone kongruas kun la bajta disdivido: ĉiu bajto prezenteblas per ekzakte 2 deksesumaj ciferoj, dum la okuma nombroprezento transpasas bajtolimojn (2 okumaj ciferoj prezentas 6 bitojn, do malpli ol bajton; 3 okumaj ciferoj prezentas 9 bitojn, do pli ol bajton).
Oni plu uzas okumajn nombrojn kiam la datumo konsistas el 3-bitaj grupoj. Ekz‑e por kodi la dosierajn atingorajtojn:
rwx r-x r--
= 1112 1012 1002 = 4+2+1;4+1;4 = 7548 =0754
Aliflanke, kun la disvastiĝo de la normo UTF-8, la okumaj ciferoj povas denove iĝi oportunaj por la dubajta kodoprezento UTF-8 de la neaskiaj unikodaĵoj ĝis U+FFF, en kiu la okumaj 4-ciferaj signonumeroj αβγδ(8) ricevas la formon \3αβ \2γδ
(la komencan bajton markas 3=112, la duan bajton, 2=102). Ekz‑e por la Esperanta litero ŭ (U+16D, okume 0555) Linuksa terminalo funkcianta en UTF-8 eligas jenan rezulton (la komando od -c
printas la neaskiajn bajtojn okume):
$ echo "aŭto" | od -c
0000000 a 305 255 t o \n
0000006
Forĵetante la bajtnumerojn (la unuajn ciferojn 3 kaj 2) de la prezento 305 255
, oni ricevas la okuman signonumeron de ŭ, 05 55
= 5558.