Signaalinkäsittelytekniikan laboratorio
Digitaalitekniikan perusteet

Luennot
 Sivukartta  
Sanasto
Laskuharjoitukset

Kiinteän pilkun lukujen laskutoimituksia

Kiinteän pilkun lukujen laskutoimituksista käsitellään tässä yhteen- ja vähennyslasku. Kummatkin ovat hyvin yksinkertaisia, koska bittioperaatiota on niin vähän (1+1=10, 1+0=0+1=1 0+0=0; 1-1=0, 1-0=1, 0-0=0, 0-1=-1). Laskutoimitukset ovat erilaisia erimuotoisille luvuille (etumerkki-itseisarvoesitys, komplementit). Käsitellään tapaukset erillään:

Etumerkki-itseisarvomuotoisten binäärilukujen yhteenlasku (ja vähennyslasku)

Algoritmi:

  • jos merkkibitit ovat samat
    • lasketaan suuruusosat yhteen
    • merkkibitti säilyy samana
  • jos merkkibitit ovat erilaisia
    • vähennetään suuruusosaltaan pienempi suuruusosaltaan suuremmasta
    • merkkibitti on sama kuin suuruusosaltaan suuremmalla

Esimerkkejä: (Ensimmäinen bitti on merkkibitti 0='+' 1='-')
ABCD
0110 1001
+ 0001 0110
1000 1111
+ 0001 0110
0100 0110
+ 0011 0011
0010 1100
+ 1000 0110
0111 11110000 01110111 10010010 0110
OKMerkkibitit
erilaisia!
Muista!
01+01=10
Merkkibitit
erilaisia!

B-kohdassa merkkibitit ovat erilaisia, joten vähennetään suuruusosaltaan pienempi (ylempi luku) suuruusosaltaan suuremmasta: 2210 - 1510 = 710

Vastaava tapaus myös D-kohdassa: 4410 - 610 = 3810

Jokainen voi itse tarkistaa laskut, esim. muuntamalla ne 10-järjestelmään ja sieltä tulos takaisin binääriseksi.

Binäärilukujen yhteenlaskua varten käytetään kokosummain rakennetta, joka tulee kurssilla myöhemmin esille (luennossa 6). Voit katsella tästä linkistä kokosummaimen totuustaulua ja todeta sen yhteenlaskevan binäärilukuja.

1-komplementtimuotoisten binäärilukujen yhteenlasku
Algoritmi:

  • lasketaan luvut merkkibitteineen yhteen
  • jos merkkibiteistä muodostuu ylimääräinen summabitti, lisätään se summan vähiten merkitsevään bittiin.

Esimerkkejä:
ABCD
0011 0101
+0010 0010
1000 1111
+ 0001 0110
1011 0010
+0111 0001
1111 0111
+1000 0110
0101 01111010 01011 0010 0011
'---------->1
0010 0100
10111 1101
Muista!
1+1=10
Muista!
1+1+1=11
OKYlivuoto

A ja B kohdassa bitit on yksinkertaisesti laskettu yhteen.
C-kohdassa ylimääräinen merkkibitti on lisätty vähiten merkitsevään bittiin.
D-kohdassa tapahtuu ylivuoto (merkkibitti on vaihtunut, luku on liian suuri lukualueeseen. Ks. 2-komplementtien yhteenlaskua).

2-komplementtimuotoisten binäärilukujen yhteenlasku

Algoritmi:

  • lasketaan luvut merkkibitteineen yhteen
  • poistetaan tarvittaessa merkkibiteistä muodostunut 'ylimääräinen bitti', niin sanottu ylivuoto

Esimerkkejä:
ABCD
0011 0101
+0010 0010
1000 1111
+ 0001 0110
1011 0010
+0111 0001
1111 0111
+1000 0110
0101 01111010 01011 0010 0011
=> 0010 0011
1 0111 1101
=>0111 1101
OKOKPoistetaan
'ylimääräinen'
bitti
Ylivuoto

A ja B kohdassa bitit on yksinkertaisesti laskettu yhteen.
C-kohdassa laskuun tulisi ylimääräinen merkkibitti, mutta sitä ei oteta huomioon vaan tiputetaan pois. (Se siis ei näy lopullisessa tuloksessa.)
D-kohdassa merkkibitti on muuttunut positiiviseksi, vaikka molemmat luvut ovat negatiivisia. Kyseessä on ylivuoto: tulos on itseisarvoltaan liian suuri esitettäväksi 8 bitillä ja näin ollen tulos on siis virheellinen. Tämä on tyypillinen vikatilanne, joka voidaan tavanomaisissa tapauksissa helposti korjata kasvattamalla sanapituutta eli lisäämällä lukujen esittämiseen käytettävien bittien määrää.

Komplementtimuotoisten lukujen vähennyslasku

  • Tehdään vastaluvun yhteenlaskuna: A - B = A + (-B)
  • -B = kompl(B)

Lisätietoja:


Tämän sivun sisällöstä vastaa aura@wooster.hut.fi
URL: http://signal.hut.fi/digis/luento2/kiintea.html
Sivua on viimeksi päivitetty 10.9.2007.