Kotisivu | Edellinen sivu | Ylös | Seuraava sivu


Kokonaisluvut


Etumerkittömät kokonaisluvut

Kaikkien yksinkertaisimmassa tapauksessa suoritin vain tulkitsee bittijonon kokonaisluvuksi em. tapaan.

  • Tavuun mahtuu tällöin kokonaisluku väliltä 0 - 255.
  • Vastaavasti 16-bittiseen sanaan mahtuu luku 0 - 65 535.
  • 32-bittiseen kaksoisanaan mahtuu luku 0 - 4 294 967 295.
  • (64-bittiseen kaksoissanaan mahtuisi luku 0 - 18 446 744 073 709 551 615. Näitä ei yleensä käytetä.)

Jos jonkin laskutoimituksen tuloksena luvun suuruus kasvaa liian suureksi, tapahtuu ylivuoto. Esim. jos koneella olisi käytössä vain kahdeksanbittiset luvut ja (binaari)lukuun 1111111 pitäisi lisätä yksi. Tulokseksi tulee 100000000, mutta yhdeksänbittisiä lukujahan ei ole! Tästä tulee yleensä virheilmoitus, tai sitten ohjelma vain "unohtaa" luvun alusta liiat bitit ja jatkaa virheellisellä arvolla, (esimerkkitapauksessa tulokseksi voisi tulla siis 0).


Etumerkilliset kokonaisluvut

Usein tarvittaisiin myös negatiivisia lukuja.

  • Yksi tapa olisi sopia, että bittijonon ensimmäinen ("ylin") bitti on 0, jos luku on positiivinen ja 1, jos luku on negatiivinen. Lopuilla biteillä sitten esitetään itse luku.
  • Tämän tavan ongelma on, että nollalla on kaksi muotoa "000...00" ja "100...00". Muutenkin systeemi on hankala toteuttaa elektroniikalla.
  • Nykytietokoneet käyttävät ns. kahden komplementtiesitystä, jossa negatiivisten lukujen bitit "invertoidaan" (ts. 0 -> 1 ja 1 -> 0) ja tulokseen lisätään ykkönen. Myös tässä tavassa "ylin" bitti on 1 vain, jos luku on negatiivinen.

    Appletti, joka käyttää kahden komplementtiesitystä(ensimmäinen bitti aina merkkibitti):

    [Applet binääriluvuista]

  • Tämä systeemi vastaa auton matkamittaria, joka "pyörähtää ympäri" takaperin mentäessä, ts. 0 on "00...00", -1 on "11...11", -2 on "11...10", -3 on "11...01" jne.
  • Etumerkilliset luvut eivät voi olla yhtä suuria kuin etumerkittömät, koska "puolet lukupaikoista" on varattu negatiivisille luvuille.
  • Tavuun mahtuu etumerkillinen luku väliltä -128 - 127.
  • 16-bittiseen sanaan mahtuu luku 32768 - 32767.
  • 32-bittiseen kaksoissanaan mahtuu luku 2147483648 - 2147483647.

Jos laskutoimituksen tulokseksi tulee liian suuri tai liian pieni luku, tapahtuu etumerkillisillä kokonaisluvuilla ylivuoto aivan samoin kuin etumerkittömilläkin.



Kotisivu | Edellinen sivu | Ylös | Seuraava sivu
Sanahaku | Hakemisto