ARVUSÜSTEEMID Kõik olulised arvusüsteemid on positsioonilised ehk arvu numbrid asuvad neile ettenähtud kindlatel asukohtadel arvujärkudes a i : a a a a a a a - a - a - a - a i Ainus üldtuntud mittepositsiooniline arvusüsteem on rooma numbrite süsteem numbrimärkidega I V X L C D M arvusüsteemi alus ; järgukaal Igal positsioonilisel arvusüsteemil on olemas täisarvuline alus p Igal järgul a i on kaal p i, mille saame arvusüsteemi alust p arvujärgu a i indeksiga i astendades: p i = p i j ä r g u k a a l u d : p p p p p p p - p - p - p - p i Kui alus p =, siis on kümnendsüsteem, kus järkude kaaludeks on: - - - täisosa murdosa kõrgemad järgud madalamad järgud Koma näitab, kus lähevad täisarvulised järgukaalud üle murdarvulisteks (ehk kus lõppeb täisosa ja algab murdosa ) Kuigi nimetame täisosa ja murdosa eraldajat traditsiooniliselt 'komaks', on levinum tähemärk tema tähistamiseks punkt (ingl decimal point) kõrgemad ja madalamad järgud suurema kaaluga järke nimetame kõrgemateks järkudeks ja väiksema kaaluga järke madalamateks järkudeks Kuna me ei vaja siin aines murdarve, siis murdarvulise kaaluga järke me ei kasuta: kõikide edaspidi vaadeldavate arvude madalaima järgu kaal on p = numbrite ARV konkreetses arvusüsteemis Igas järgus a i saab olla p erinevat numbrimärki ehk järguväärtust Kui p =, siis a i,,,,,,,,, Igal ndnumbril on tema traditsiooniline väärtus Järgu väärtus on selles arvujärgus asuva numbri väärtus Arv koosneb numbritest näide: arv koosneb neljast numbrist: '' '' '' '' arvu VÄÄRTUS Mistahes positsioonilises arvusüsteemis (ehk iga aluse p korral ) avaldub arvu väärtus N järgneva korrutiste summana : N = + a p + a p + a p + a p + a - p - + a - p - + st järgukaalud ja järguväärtused on omavahel korrutatud : a a a a a a a - a - a - a - a i p p p p p p p - p - p - p - p i / näide: \ ndsüsteemne arv (indeks näitab siin arvusüsteemi ) on väärtusega "sada kakskümmend kolm" ainult sellepärast, et järgnev tehe annab sellise tulemuse: = + + = Mõiste "arvu väärtus" on eranditult seotud ainult ndsüsteemiga ndsüsteem on kõigi teiste arvusüsteemidega võrreldes tähtsas eristaatuses, kuna inimesed "tunnetavad" arve just ndsüsteemis "väärtuse leidmine" ja "ndsüsteemi teisendamine" on sünonüümid Pole olemas "kahendsüsteemset väärtust" ega "kaheksandsüsteemset väärtust"; on olemas ndsüsteemne esitus ja ndsüsteemne esitus "kasutamata" arvujärgud a i on täidetud -dega: = Täisosa ees ja murdosa järel asuvad ''-d (a i = ) ei mõjuta arvu väärtust N :
N = + a p + a p + a p + a p + a - p - + a - p - + Järgnevalt on loetletud kõik kuni -järgulised kahendarvud (ehk ndarvud väärtusega kuni ) : ( järjestikuste arvude genereerimise / loendamise / inkrementeerimise näide ndsüsteemis ) Üleskirjutatud arvu süsteemikuuluvuse täpsustamiseks lisame talle süsteemi näitava indeksi: ei ole mitte "kolmsada seitsekümmend kaks" vaid on ndsüsteemne arv "kolm-seitse-kaks" I nüüd lahkume ndsüsteemist ja siseneme muudesse arvusüsteemidesse? kuidas saame KAHENDSÜSTEEMI? Asendades harjumuspärase arvusüsteemi aluse p = uue alusega: p = koos kõigi sellega kaasnevate tagajärgedega, saame kahendsüsteemi : KAHENDSÜSTEEM Kahendsüsteem on lihtsaim võimalik positsiooniline arvusüsteem: p = a i Kuna positsioonilises arvusüsteemis peab olema tema alusega võrdne arv numbrimärke, siis kahendsüsteemsed arvud koosnevad ainult kahest numbrist: ja Arvusüsteemi aluse muutmisega kaasneb ka järgukaalude muutus, mis kahendsüsteemis on arvu astmete asemel arvu täisarvastmed: - ndsüsteemi järgukaalud: - - ( järjestikuste arvude genereerimise / loendamise / inkrementeerimise näide ndsüsteemis ) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = N = + a p + a p + a p + a p + a - p - + a - p - + ( ) arvu väärtuse N leidmine osutub ndarvude jaoks eriti lihtsaks: Kuna kahendarvudes ei leidu suuremaid järguväärtusi kui, siis kahendarvude korral arvu väärtust arvutav avaldis N = (ehk teisendus ndsüsteemi) lihtsustub : korrutamisest saab loobuda ja summeerida tuleb ainult need järgukaalud, kus asub järguväärtus : näide: = + + + = = + + + =? kas väiksed kahendarvud peaks pähe õppima?
kahendarve pole mõtet "pildina" pähe õppida, kuna "väikseid" kahendarve saab hetkega tuletada järgukaalude kaudu (täites vajalikud järgud -dega) võtame veel ühe suvalise ndarvu eelnevast tabelist ja leiame ta väärtuse: = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + + + + + = + + + = Leida järgnevate positiivsete ndarvude väärtus (ehk teisendada ndsüsteemi) = = = = = = = = = =? aga vastupidine teisendus? Kuidas viime ndarvu ndkujule? Teisendus ndsüsteemist ndsüsteemi Teisendus ühest arvusüsteemist teise toimub uue alusega jagamise teel kus jagamine on täisarvuline: murdarvu asemel saame jagatise ja jäägi: : = ( jääk ) Väärtuse N leidmise suhtes vastupidine teisendus ehk ndsüsteemse täisarvu teisendamine ndsüsteemi toimub -ga jagamise teel, kusjuures (täisarvulise) jagamise jäägid ( ja ) on saadava ndarvu järguväärtusteks / näide: \ Teisendame ndtäisarvud ndkujule: : : jagaja : madalaim järk jagatav jääk jagatis kõrgeim järk = = + + = = = = = =
? kuidas tunneme ndarvu vaadates ära, kas ta on paarisarv või paaritu arv? näeme, et kõik järgukaalud on paarisarvud ainus paaritu järgukaal on : arvu murdosa teisendusmeetod erineb oluliselt täisarvu teisendusest Kuna me murdarvudega järgnevas ei tegele, siis me arvu murdosa teisendusmeetodit ei vaatle ( ) väikeste ndarvude kiirkoostamine de "sobitamise" teel õigetesse järkudesse: Vajaliku arvu kahendkuju saab koostada ka järguväärtuste paigutamise teel vajalikesse ndjärkudesse Selleks tuleb esmalt kirjutada välja ndsüsteemi järgukaalud piisava suuruseni: ja peast arvutades täidame ( kõrgematest järkudest alates! ) vajalikud järgud "ühtedega" nii, et -ga täidetud järkude kaalude summa võrduks soovitud ndarvuga Eelpool toodud seitsme ndjärgu abil õnnestub esitada arve kuni väärtuseni : + + + + + + = = / ülesanne: \ Teisendada järgnevad ndarvud ndkujule : = = = = = Lisaks alustele p = ja p = on olulisemateks arvusüsteemide alusteks veel ja, kuna nad on mõlemad arvu astmed: p = = p = = "ühendsüsteem" (arvusüsteem alusega p = ) ei ole võimalik (miks?) KAHEKSANDSÜSTEEM ndsüsteemi alus on ja seega peab seal olema võimalikku järguväärtust, milleks on kaheksa esimest araabia numbrit : p = a i { } ndsüsteemi järgukaalud: - ndarve nimetatakse ka oktaalarvudeks - - = = = = = = = = Leia nende kaheksandarvude väärtus :
= + = + = = + = + = = + + = Teisendus ndsüsteemist ndsüsteemi ndtäisarvude teisendus ndsüsteemi toimub -ga jagamise teel, kusjuures igal jagamissammul saadakse jäägina arvu järgmine ndnumber Teisenda ndtäisarvud ndkujule: : = järgukaalud ( kontrollimisvõimalus ) KUUETEISTKÜMNENDSÜSTEEM hexadecimal (hex) Kuna ndsüsteemis on arvusüsteemi alus p =, siis peab seal olema ka võimalikku järguväärtust ja sellest tulenevalt ka numbrimärki nende esitamiseks probleem : araabia numbreid ( ) on olemas ainult tk!? numbrit jääb puudu? lahendus : Lisaks -le araabia numbrile on ülejäänud kuueks numbrimärgiks võetud ladina tähestiku algustähed A F : p = a i A B C D E F ndnumbrid A F omavad väärtusi: A = B = C = D = E = F = ndsüsteemi järgukaalud: - - oleme märganud, et järk kaaluga on olemas igas arvusüsteemis: p = : p = : p = : p = : p p p p p p p - p - p - p - p i p = suvalise p korral Teisenda järgnevad ndarvud ndkujule (ehk leia väärtus) : = F F = D = = A = C D =
= + = D = + = A = + = F F = = C D = ndsüsteem on "suurim" praktiliselt kasutatav arvusüsteem Võimalik on koostada arvusüsteeme ka suurema alusega kui, kuid selliseid suuremaid arvusüsteeme pole vaja Teisendus ndsüsteemist ndsüsteemi ndtäisarvude teisendus ndsüsteemi toimub -ga jagamise teel, kusjuures igal jagamissammul saadakse jäägina arvu järgmine ndnumber F = = = Teisendada järgnevad ndarvud ndkujule : = D = = ndsüsteem on vajalik meie kodutöö alguses! (detsembris) Edaspidi vajame nendest arvusüsteemidest kõige rohkem kahendsüsteemi ARVUSÜSTEEMID kokkuvõttev loetelu kuni arvutite ilmumiseni polnud vaja muid arvusüsteeme peale ndsüsteemi p ndsüsteem: p = a i ndsüsteem: p = a i ndsüsteem: p = a i ndsüsteem: p = a i ndsüsteem: p = a i ndsüsteem: p = a i ndsüsteem: p = a i ndsüsteem: p = a i ndsüsteem: p = a i ndsüsteem: p = a i ndsüsteem: p = a i ndsüsteem: p = a i A B C ndsüsteem: p = a i A B C D ndsüsteem: p = a i A B C D E ndsüsteem: p = a i A B C D E F olulised arvusüsteemid: p = = ( kus p = n )
p = = p = p = = muid arvusüsteeme praktikas ei kasutatagi Kuna kahendnumbrid ja on kasutusel ka loogikaväärtuste tähistustena, siis leiab kahendsüsteem rakendust ka lausearvutuses, loogikaalgebras ja kõikjal mujal, kus tegeletakse -de ja -de kogumikega ehk kahendkoodidega Teisendus ndsüsteemist ndsüsteemi või ndsüsteemi siin on loetelu arvude esitustega neljas erinevas arvusüsteemis : nd nd A B C D E F nd nd nd ndsüsteemi, ndsüsteemi ja ndsüsteemi alused on arvu täisarvastmed: p = p = p = See annab neile kasuliku lisaomaduse, võimaldades nende süsteemide omavahelisi arvuteisendusi teha ka numbrimärkide asendamise teel ehk ilma "uue alusega" jagamata? kuidas saame ndarvu viia ndkujule? ndarvu on võimalik kiirelt teisendada (ümber kirjutada) tema ndkujule, asendades (alates ndarvu madalamatest järkudest) iga tema järkudekolmiku vastava ndnumbriga nagu näitas eeltoodud vastavustabel : nd nd A B C D E F nd nd nd / näide: \ Võtame suvalise ndarvu: eesmärgiga viia see arv ndkujule ja seejärel ka ndkujule viimine / ümberkirjutamine ndkujule :
võimalik oleks teisendada nd nd nd kuid see oleks asjatu töö parim teisendusviis: Grupeerime ndarvu järgud -järgulistesse gruppidesse alates madalamatest järkudest : lisades vajadusel arvu ette -lle: edasi asendame ndjärkude iga grupeeritud kolmiku temaga väärtuselt võrdse ndnumbriga : (eelpoolses vastavustabelis read: kuni ; kuni ) seega = /! viga: \ alates kõrgematest järkudest ei tohi grupeerida :? miks ei tohi grupeerida ndjärke alates kõrgematest järkudest? kuna täisarvu lõppu ei tohi lisada -lle see "rikuks" arvu väärtuse! sama ndarvu viimine / ümberkirjutamine ndkujule : Selleks grupeerime ndarvu järgud järgu kaupa alates madalamatest järkudest ja asendame iga ndjärkude neliku temaga väärtuselt võrdse ndnumbriga F : juhindudes vastavustabelist ndsüsteemi ja ndsüsteemi vahel: nd nd nd nd nd A B C D E F seega = A A
Kontrollida eelnevalt leitud arvude võrdsust, leides eelmise näite ndarvu, ndarvu ja ndarvu väärtused : = = A = arvestades järgukaalusid nendes arvusüsteemides : = + + + + + + + = = + + + + + + + = = + + + + = = + + + + = A = + + + = A = + + + = ( kõik need arvu on võrdsed ) sellise asendamisega saab teisendada ka "vastupidises suunas" : numbrite vastupidise asendamisega kahendjärkude kolmikuteks või nelikuteks saab arvu ndkujult või ndkujult kergesti üle minna tema ndkujule: nd nd nd nd Sarnast arvujärkude asendamist saab rakendada ka ndsüsteemiga tegeledes, sest arvusüsteemi alus p = = ndsüsteemi ja ndsüsteemi siduv vastavustabel oleks: nd nd seega ndsüsteemi ümberkirjutamiseks vaja grupeerida : ndsüsteem ei ole oluline arvusüsteem ja praktikas teda ei kasutata? aga kui grupeerida ndarvu järgud ühekaupa? siis saame mõttetu "teisenduse" ndsüsteemist ndsüsteemi! Programmeerimiskeeled võimaldavad arvude ("arvkonstantide") esitamist ndsüsteemis ndsüsteemis ndsüsteemis ndsüsteemis kuid mitte ndsüsteemis? kas on võimalik ndarv ümberkirjutada ndkujule ka "otse" ehk ilma ndsüsteemi "läbimata"?! ndsüsteemi ja ndsüsteemi vaheline "otseteisendus" (numbrite asenduse teel) pole võimalik: ainult ndsüsteemi kaudu saab? aga ndsüsteem? see on ju kah alusega p = n? ndsüsteem (ebaoluline) A OTSE ei saa
saab nii : nd nd nd ndsüsteemi tähtsus Arvutimälus hoitakse andmeid baitides ( byte ), mis on -järgulised kahendkoodid vaatleme kõikvõimalikke ndkoode mis saavad olla baidis : ndsüsteem võimaldab esitada / näidata baitide sisu ( ja üldse igasuguseid kahendkoode) palju kompaktsemalt võrreldes nende "vahetu" esitamisega kahendkujul Selleks jaotame baidi kõrgemaks ja madalamaks poolbaidiks : Mõlema poolbaidi saab asendada vastava ndnumbriga F : = = = = =?? =?? = B =??
= = A = = FD = = FE = FF Baidi mistahes võimalikku sisu / koodi saab seega esitada kahejärgulise ndarvuna: ( suvalised juhuslikud näitebaidid ) = B = = E = A = FE = FF Kui arvutimälu sisu tuleb kuidagi visuaalselt (inimestele) näidata, siis eelistatakse mälus tegelikult asuvate -de ja -de näitamise asemel esitada mälubaitides asuvate ndarvudega võrdseid ndarve ndsüsteemi kasutatakse ndarvude kompaktsemaks esitamiseks ( ndsüsteem on vajalik ka kodutöös )? aga kui bait oleks kehtestatud (näiteks) -järgulisena? siis oleks ndsüsteem olnud olulisem kui ndsüsteem, kuna poolbait oleks olnud seljuhul -järguline : (n-järguline) kahendvektor on kahendnumbritena ja esitatud loogikaväärtuste ühemõõtmeline jada pikkusega n Vektori pikkus on tema ndjärkude arv ehk n-järgulise ndvektori pikkus on n / näide: \ Järgneval real on esitatud erineva pikkusega k a h e n d v e k t o r i t : Kahendvektoril pole mingit seost füüsikast tuntud vektori mõistega Erinevalt kahendarvust ei tohi kahendvektoris ära jätta algusnulle: Kahendvektori järkudel pole järgukaalu Tema sarnasuse tõttu ndarvudega osutub mõnes rakenduses siiski kasulikuks ja vajalikuks vaadelda teda kahendarvuna ehk ndvektori järkudele omistatakse vajadusel ndsüsteemi loomulikud järgukaalud : See võimaldab kahendvektorit kompaktsemalt esitada talle vastava ndarvu väärtuse abil lähisvektorid (lähiskoodid) on võrdse pikkusega kahendvektorid, mis erinevad teineteisest ainult ühes kahendjärgus näide: järgnevad vektorit on teineteise lähisvektorid : näide: ka need kaks ndvektorit on teineteise lähisvektorid : Iga n-järguline kahendvektor omab seega n tk lähisvektorieid Kahendkoodidega seotud mõisted = = intervall on võrdse pikkusega kahendvektorite hulk võimsusega n ( n N ), milles iga hulgaelemendi jaoks leidub samas hulgas täpselt n lähisvektorit / näide: \