Kantalukujärjestelmä

Kantalukujärjestelmä on lukujärjestelmä, jossa luku esitetään yksikäsitteisessä muodossa kertoimen ja kantaluvun eri potenssien tulona. Luvun esitysmuodossa kirjoitetaan näkyviin vain potenssien kertoimet ja jätetään potenssimerkinnät pois, jotta merkintä olisi tiivis ja helppokäyttöinen. Esitysmuotoa kutsutaan kantaluvun paikkamerkinnäksi, sillä merkinnässä jokainen numero liittyy sijaintinsa mukaan tiettyyn kantaluvun potenssiin. ==Johdanto== Jos paikkamerkinnässä käytetään kantalukuna lukua 10, tarkoittaa luvun paikkamerkintä "1234" lukua, joka saadaan laskemalla 1•103 \+ 2•102 \+ 3•101 \+ 4•100. Tämä merkitään ilmaisemalla samalla merkinnän kantaluku oikeassa alakulmassa eli 123410. Jos käytetään kantalukua 5, tarkoittaa paikkamerkintä "233" lukua 2•52 \+ 3•51 \+ 3•50. Tämä merkitään 2335 = 6810. Kantaluvun ollessa 10, ilmaistaan murto-osat käyttäen 0,1 = \tfrac{1}{10} = 10^{-1}, 0,01 = \tfrac{1}{100} = \tfrac{1}{10^2} = 10^{-2}, 0,001 = \tfrac{1}{1000} = \tfrac{1}{10^3} = 10^{-3} ja niin edelleen. Kantaluvun negatiivinen eksponentti tarkoittaa potenssilaskennassa kantaluvun käänteislukua. Käänteisluvut ovat yksikkömurtolukuja, joilla murto-osat voidaan ilmaista. Paikkamerkintä 0,23410 tarkoittaa 2•10-1 \+ 3•10-2 \+ 4•10-3. Kantaluvun ollessa 5, tarkoittaa 0,2345 = 2•5-1 \+ 3•5-2 \+ 4•5-3 = 0,55210. == Luvun esitys kantalukujärjestelmässä == Lukujärjestelmässä, jonka kantaluku on (ykköstä suurempi) positiivinen luku k, mikä tahansa luku x ilmaistaan kantaluvun k potenssien summana :x = \sum_{i \in Z} d_i k^i, missä indeksi i saa kaikki kokonaislukuarvot ja luvun numerot di ovat kokonaislukuja välillä 0..k-1, (eli d_i \in [0..k-1]). Kantaluku k on yleensä positiivinen kokonaisluku. Kokonaislukujärjestelmässä luku kirjoitetaan paikkamerkintänä numeroiden jonona \ d_n d_{n-1} d_{n-2}...d_{1} d_{0},d_{-1} d_{-2}..., missä pilkun vasemmalla puolella olevat numerot muodostavat luvun kokonaisosan ja oikealla puolella olevat sen murto-osan (desimaalijärjestelmässä desimaaliosan). Kokonaislukuosasta jätetään merkitsemättä alkunollat. Voidaan osoittaa, että tällä tavalla voidaan ilmaista kaikki erilaiset reaaliluvut, kunhan numeroiden merkitsemiseen on riittävästi tilaa ja aikaa. Desimaalijärjestelmässä pilkku merkitään toisissa maissa myös desimaalipisteellä. Kantaluvusta riippuen luvulle saadaan erilainen esitys eri lukujärjestelmissä. == Luvun kantaluvun vaihto paikkamerkinnässä == Huomautus: x0 = 1 eli mikä tahansa luku (x ei saa olla 0) korotettuna potenssiin nolla on yksi. 10-järjestelmässä lukujen painoarvo menee seuraavasti (10:llä jaolliset painoarvot): .... 1000, 100, 10, 1 .... esimerkiksi * 15410 = 1·102 \+ 5·101 \+ 4·100 Heksadesimaalijärjestelmässä taas on heksadesimaaliluvulla 1016 jaolliset painoarvot (eli 1610-jaolliset): .... 4096, 256, 16, 1. Esimerkiksi * 4F0716 = 4·163 \+ 15·162 \+ 0·161 \+ 7·160 (eli 416 · 100016 \+ F16 · 10016 \+ 016 · 1016 \+ 716 · 016) Näin ollen esimerkiksi jos muutamme luvun 102410 heksadesimaaliluvuksi, voimme käsitellä sitä seuraavasti: Katsomme suurimman painoarvoluvun joka on silti pienempi kuin 1024, tässä tapauksessa 256. Kerromme sen niin suurella luvulla kuin mahdollista, että se ei silti ylitä tavoittelemaamme lukua. saadaan luku 4. eli siis 102410 = 4·25610. Heksadesimaalilukuna 25610 = 10016 joten 4·10016 = 40016 joka on tavoittelemamme luku. Toisena esimerkkinä voidaan ottaa luku 738610. se on 1·163 \+ 12·162 \+ 13·161 \+ 10·160 Tästä saadaan siis luku 1CDA16 === Kantaluvun vaihto jakolaskun avulla === Jakoalgoritmia voidaan helposti soveltaa kymmenlukujärjestelmässä olevien kokonaislukujen esittämiseksi eri lukujärjestelmissä. Muissa lukujärjestelmissä olevat luvut täytyy ensin muuntaa kymmenlukujärjestelmään ennen jakoalgoritmin soveltamista. Sovellus toimii seuraavanlaisesti: # Otetaan kaksi kakkosta suurempaa kokonaislukua a ja b. a on muunnettava luku ja b on kohdejärjestelmä. # Suoritetaan laskutoimitus a - \left[ \frac{a}{b} \right] \cdot b (merkintä \left[ \frac{a}{b} \right] tarkoittaa, että a jaetaan b:llä, mutta huomioidaan tuloksesta vain kokonaisosa). # Edellisen laskutoimituksen tulos on muunnoksen ensimmäinen, vähiten merkitsevä numero. Otetaan talteen myös laskutoimituksen \left[ \frac{a}{b} \right] tulos, sillä sitä käytetään seuraavassa kohdassa. # Toistetaan sama laskutoimitus, mutta tällä kertaa korvataan a edellisen laskutoimituksen \left[ \frac{a}{b} \right] tuloksella. Eli toinen laskutoimitus olisi kokonaan uudelleen laskettuna muotoa \left[ \frac{a}{b} \right] - \left[ \frac{\left[ \frac{a}{b} \right]}{b} \right] \cdot b # Tuloksena saatiin muunnoksen seuraava numero. # Jatketaan muunnosta, kunnes laskun \left[ \frac{a}{b} \right] tulos on alle yksi. Seuraavassa perusteellinen esimerkki siitä, kuinka tapahtuisi luvun 102410 muuntaminen heksadesimaaliluvuksi. a=1024 , b=16 # 1024 - \left[ \frac{1024}{16} \right] \cdot 16 = 1024 - 64 \cdot 16 = 1024 - 1024 = 0, \qquad \left[ \frac{1024}{16} \right] = 64 # 64 - \left[ \frac{64}{16} \right] \cdot 16 = 64 - 4 \cdot 16 = 64 - 64 = 0, \qquad \left[ \frac{64}{16} \right] = 4 # 4 - \left[ \frac{4}{16} \right] \cdot 16 = 4 - 0 \cdot 16 = 4 - 0 = 4, \qquad \left[ \frac{4}{16} \right] = 0 Lopputulos luetaan alhaalta ylöspäin, eli 102410 on siis 40016. Yhtä yksinkertaisesti voimme esimerkiksi muuttaa luvun 7816210, kuusikymmenlukujärjestelmään. a=78162 , b=60 # 78162 - \left[ \frac{78162}{60} \right] \cdot 60 = 78162 - 1302 \cdot 60 = 78162 - 78120 = 42, \qquad \left[ \frac{78162}{60} \right] = 1302 # 1302 - \left[ \frac{1302}{60} \right] \cdot 60 = 1302 - 21 \cdot 60 = 1302 - 1260 = 42, \qquad \left[ \frac{1302}{60} \right] = 21 # 21 - \left[ \frac{21}{60} \right] \cdot 60 = 21 - 0 \cdot 60 = 21 - 0 = 21, \qquad \left[ \frac{21}{60} \right] = 0 Kuusikymmenlukujärjestelmää käytetään lähinnä ajan mittaamiseen (sekunnit ja minuutit). Jos alkuperäinen kymmenlukujärjestelmässä ollut luku oli sekunneissa, lopputulos on 21 tuntia 42 minuuttia ja 42 sekuntia. == Eri lukujärjestelmillä laskeminen == Kantaluvusta riippumatta luvuilla "yksi nolla" (10) kertominen ja jakaminen on äärimmäisen helppoa. esimerkiksi * Heksadesimaaliluvuilla: 2416 · 1016 = 24016 (3610 * 1610 = 57610) * Binääriluvulla: 110b · 100b = 11000b (610 · 410 = 2410) Yhteen- ja vähennyslaskutkaan eivät ylitsepääsemättömiä ole. Kyseessä on vain tottumuskysymys. Periaatteessa yhteenlasku on aivan yhtä yksinkertaista erikantaisilla luvuilla. Ihmiset ovat vain tottuneet käyttämään 10-järjestelmää. Luokka:Lukujärjestelmät