"On olemassa 10-laisia ihmisiä, niitä jotka tuntevat kymmenjärjestelmän ja niitä jotka tuntevat binäärijärjestelmän"

Minkä takia binäärijärjestelmä on tärkeä? Mihin sitä käytetään ja miten se toimii?

Miten binäärijärjestelmä toimii?

Normaalisti kun laskemme lukuja, käytämme laskennassa 10 numeron kantaa, eli ajatuksemme sekä laskemisemme jaksottuu kymmenen eri numeron varaan. Tämä on luonnollista, sillä sormia on normaalisti kymmenen ja niitten varassa on helppo toimia.

Tietokoneille tämän hahmottomaninen syvemmissä logiikan piireissä olisi huomattavan hankalaa, josta syystä tietokoneet "opetettiin" laskemaan binäärisesti eli kahdella luvulla (1 ja 0). Tämä pohjaa vastaavanlaisesti logiikkaan, tietokoneen komponentissa joko on (1) tai ei ole (0) sähköä. Kyseessä on siis hyvinkin mustavalkoinen katsanto, tosin mustaa ja valkoista tarpeeksi sekoittamalla saadaan harmaan sävytkin mukaan.

Binäärijärjestelmällä numeroiden laskeminen vaatii vähän opettelua, mutta kun peruslogiikan oppii ja sitä tarpeeksi harjoittelee, alkaa numeroiden muodostumisen logiikka helpottumaan. Otetaan alle esimerkin vuoksi numerot 0-10 väliltä, rivin alussa tutussa muodossa ja perässä binäärinä:
0  -  0
1  -  1
2  -  10
3  -  11
4  -  100
5  -  101
6  -  110
7  -  111
8  -  1000
9  -  1001
10  -  1010

Tällä tapaa laskemalla on kuitenkin hankala hahmottaa isompia lukuja, tähän voi onneksi käyttää esimerkiksi numeron 2 potenssien kautta laskemista. Esimerkiksi kymmenjärjestelmässä 1337 on binäärijärjestelmässä 10100111001, kakkosen potenssien kautta mietittynä suurin potenssiluku minkä saat mahtumaan 1337 sisään on 1024 (2^10), jäljelle jää 313 johon mahtuu 256 (2^8), jäljellä 57 johon mahtuu 32 (2^5), jäljellä 25 johon mahtuu 16 (2^4), jäljellä 9 johon mahtuu 8 (2^3) jonka jälkeen jäljellä on enää 1 johon menee 1 (2^0). Nämä kun on auki, tiedetään että suurin potenssi oli 10 eli tarvitsemme 10+1 = 11 numeroa (laskenta numeroille alkaa siis nollasta). Nyt merkkaamme vain XXXXXXXXXXX noiden X merkkien päälle 1 jos äsken tuon järjestysnumeron potenssi löytyi laskennasta, loput muunnetaan nolliksi. Eli ensin 1X1XX111XX1 jonka jälkeen lopputuloa 10100111001.

Onko se noin selkeää tietokoneilla ja miten aakkoset muodostuvat?

Valitettavasti ihan yllä olevan esimerkin kaltaisesti tietokone ei muodosta ymmärrystään. Jos ylläolevalla logiikalla kirjoittaisi esimerkiksi numerot 2 (10) ja 6 (110) peräkkäin binäärissä ilman jaksotusta tai muuta sääntöä, tulisi siitä 10110 jonka tietokone lukisikin numeroksi 22 eikä tarkoitettu 26.

Tietokoneille binääriluvut kirjoitetaan kahdeksan merkin jonoissa, tämä on vakiintunut käytäntö monen asian summana joista yksi on se, että kahdeksan kääntyy helposti numeron 2 potensseihin.

Tämän myötä esimerkiksi numero 2 esitetäänkin tietokoneella binäärisenä tavuna (Byte) 00110010, jokaista yksittäistä numeroa tuossa jonossa sanotaan bitiksi (bit). Tämän myötä alussa esitetty vitsi kääntyy muotoon:
00100010 01001111 01101110 00100000 01101111 01101100 01100101 01101101 01100001 01110011 01110011 01100001 00100000 00110001 00110000 00101101 01101100 01100001 01101001 01110011 01101001 01100001 00100000 01101001 01101000 01101101 01101001 01110011 01101001 11000011 10100100 00101100 00100000 01101110 01101001 01101001 01110100 11000011 10100100 00100000 01101010 01101111 01110100 01101011 01100001 00100000 01110100 01110101 01101110 01110100 01100101 01110110 01100001 01110100 00100000 01101011 01111001 01101101 01101101 01100101 01101110 01101010 11000011 10100100 01110010 01101010 01100101 01110011 01110100 01100101 01101100 01101101 11000011 10100100 01101110 00100000 01101010 01100001 00100000 01101110 01101001 01101001 01110100 11000011 10100100 00100000 01101010 01101111 01110100 01101011 01100001 00100000 01110100 01110101 01101110 01110100 01100101 01110110 01100001 01110100 00100000 01100010 01101001 01101110 11000011 10100100 11000011 10100100 01110010 01101001 01101010 11000011 10100100 01110010 01101010 01100101 01110011 01110100 01100101 01101100 01101101 11000011 10100100 01101110 00100010

Jos olet joskus harjoitellut koodinmurtamista tai muuta numeroilla leikkimistä, löydät nopeasti tuostakin lukujonosta jonkinlaista logiikkaa ja toistoa. Kovin luettavaa ihmissilmälle se ei kuitenkaan ole.

Miksi binäärin ymmärtäminen on siis tärkeää?

Koska koko tietokoneen logiikka perustuu tuohon binäärisen mustavalkoiseen toimintaan, on tämä logiikka myös itse hyvä opetella ymmärtämään mikäli haluat ymmärtää tietokoneita paremmin. Joko jokin asia on tai ei ole, hyvin yksinkertaista. Toki tästä voidaan vetää pidempiä loogisia ajatusketjuja, mutta aliosaset näissä toimivat kuitenkin tuolla binäärisellä logiikalla yhä.

Esimerkiksi näppäimen painallus, tämähän on helposti ajateltavissa että näppäin on painettuna tai ei ole. Mitäpäs sitten kun näppäintä pidetään pohjassa? Tällöin tarkistetaan tilannetta tietyin aikasyklein (hertsein). Tällöin voidaan myös aktivoida kaksi erillistä kohtaa, näppäin painetaan ja vapautetaan. Tästä seuraa, että yhtäkkiä asialla, mikä koettiin yksinkertaiseksi joko on tai ei asiaksi, onkin jo neljä eri vaihetta joiden varassa toimia ja mukaan on otettu vielä aika jonka lineaarisella janalla tilannetta seurataan. Esimerkin valossa tämä aiheuttaisi seuraavanlaisen seurantakaavion:
0-0-0-1-1-1-1-0

Esimerkissä seurataan sekunnin ajan näppäintä, sekunti on jaoteltu kahdeksaan osaan joista jokaisen kohdalla tarkistetaan painikkeen tilanne. Aluksi nappi ei ole painettuna pohjaan, saavuttaessa puolen sekunnin rajapyykkiä kohden painetaan nappi pohjaan ja pidetään puoli sekuntia pohjassa, tämän jälkeen nappi vapautetaan. Kahden eri merkin jonossa voimme siis seurata neljää eri asiaa, onko vai eikö asia ja muuttuuko tilanne jompaan kumpaan suuntaan.

CD-levyä (tai mitä tahansa muuta optista levyä) kun luetaan valolla, ei seurata lainkaan että onko vai eikö luettavassa kohdassa kohouma, vaan seurataan ainoastaan että milloin kohouma alkaa ja milloin loppuu. Nämä ajankohdat suhteutetaan aikaan suoraan ja näin kerätään levyn pinnasta dataa siitä, mitä siihen on kirjoitettu.

Loppusanat

Olemisen ja sen puuttumisen seurannalla saadaan siis monenlaisia sovelluksia aikaiseksi, mitä enemmän asioita yhtäaikaa seurataan, sitä monimuotoisemmaksi seurattu asia saadaan muutettua. Kun toimintoihin ja muutoksiin liitetään ehtoja, saadaan aikaiseksi toimintoja. Esimerkiksi näppäimen painaminen alas generoi kirjaimen näytölle, kun seurataan ajallisesti näppäimen pysyvän alhaalla, aletaan pienen seurantaviiveen jälkeen toistaa kirjaimen piirtoa näytölle siihen asti kunnes näppäin vapautetaan ja tilanne muuttuu.

Tietokoneet ovat siis pohjimmiltaan hyvinkin yksinkertaisia laitteita, niiden toiminnan logiikkaan pitää vain ensin tutustua sillä se ei toimi samalla tavalla kuin mitä normaali ihmismieli. Kun logiikka tietokoneen toimintojen taustalta alkaa valottumaan, alkaa paremmin ymmärtämään sitä, miten ja miksi ne toimivat kuin toimivat ja lopulta tätä pystyy itse hyödyntämään monin eri tavoin.

 

Ajatuksia yksinkertaistamassa monimutkaisemmiksi,

Elektronikkari