4.3.2 Negatiivinen kokonaisluku

Negatiivinen luku voidaan esittää joko suorana, 1-komplementtina tai 2-komplementtina.

4.3.2.1 Suora tulkinta

Suorassa tulkinnassa varataan yksi bitti ilmoittamaan luvun etumerkkiä (+/-). Jos N = 4, niin tällöin luku +310 = 0011 ja -310 = 1011. Suoran esityksen mukana tulee ongelmia laskutoimituksia suoritettaessa; mm. luvulla nolla on tällöin kaksi esitystä, 0000 ja 1000, mikä ei ole toivottava ominaisuus.

4.3.2.2 1-komplementti

Jos luku on positiivinen, kirjoitetaan se normaalisti, ja jos luku on negatiivinen, niin käännetään kaikki bitit päinvastaisiksi. Esimerkiksi luku +310 = 0011 ja -310 = 1100. Tässäkin systeemissä luvulla nolla on kaksi esitystä, 0000 ja 1111.

4.3.2.3 2-komplementti

Yleisimmin käytetty tapa ilmoittaa negatiiviset luvut on 2-komplementti. Tällöin positiivisesta luvusta otetaan ensin 1-komplementti eli muutetaan nollat ykkösiksi ja päinvastoin ("käännetään" kaikki bitit vastakkaisiksi), minkä jälkeen tulokseen lisätään 1. Tämän esitystavan etuna on se, että yhteenlasku toimii totuttuun tapaan myös negatiivisilla luvuilla. Vähennyslasku suoritetaan summaamalla luvun vastaluku:

2-3 = 2+(-3)

Katsotaan muunnoksen tekemistä tarkemmin. Seuraavassa muodostetaan luvuista 1, 2 ja 3 vastaavat negatiiviset luvut:

          luku 1: 0001       luku 2: 0010       luku 3: 0011
käännetään bitit: 1110               1101               1100
      lisätään 1: 1111               1110               1101
      tulos (-1): 1111   tulos (-2): 1110   tulos (-3): 1101

Muuntaminen toiseen suuntaan suoritetaan täsmälleen samalla tavalla (kokeile!).

Olkoon N = 4 ja suoritetaan seuraavat laskutoimitukset:







 111  

2+1=3

  0010


1-2=-1

  0001


-2-1=-3

  1110


+ 0001



+ 1110



+ 1111


  0011



  1111



  1101

Jos vastauksen ensimmäinen bitti on 1 (neljäs oikealta, enempää ei huomioida), on vastaus negatiivinen ja 2-komplementtimuodossa. Tällöin vastauksen tulkitsemiseksi sille suoritetaan muunnos edellä esitetyllä tavalla (ensin käännetään bitit, sitten lisätään 1). Muunnoksen tuloksena saadaan luvun itseisarvo, itse luku on siis tällöin aina negatiivinen. Jos ensimmäinen bitti on 0, on vastaus positiivinen, eikä mitään muunnosta tarvitse suorittaa.

Esimerkeissä laskuissa summattavana olevat negatiiviset luvut on muunnettu 2-komplementtimuotoon, mutta tuloksia ei ole muunnettu takaisinpäin. Kokeile muuntamista niihin vastauksiin, jotka havaitaan negatiivisiksi (ensimmäinen bitti vasemmalta 1).

Yhteenvetona taulukoidaan kaikki esitetyt kokonaisluvun esitykset, kun N = 4:

binääri-
esitys

etumerki-
tön

suora
esitys

1-komple-
mentti

2-komple-
mentti

0000

0

+0

+0

0

0001

1

+1

+1

+1

0010

2

+2

+2

+2

0011

3

+3

+3

+3

0100

4

+4

+4

+4

0101

5

+5

+5

+5

0110

6

+6

+6

+6

0111

7

+7

+7

+7

1000

8

-0

-7

-8

1001

9

-1

-6

-7

1010

10

-2

-5

-6

1011

11

-3

-4

-5

1100

12

-4

-3

-4

1101

13

-5

-2

-3

1110

14

-6

-1

-2

1111

15

-7

-0

-1

4.3.2.4 Eri esitysten vertailu

Suorassa tulkinnassa ja 1-komplementissa on 2 eri esitystä nollalle (ks. edellinen taulukko). Tämä ei yksikäsitteisyyden takia ole toivottava ominaisuus. Mikäli lukua joskus joudutaan vertaamaan nollaan, täytyy tarkistaa onko tutkittava luku +0 vai -0.

Suoran tulkinnan yksi harvoista eduista on se, että itseisarvon ottaminen on helppoa: laitetaan etumerkkibitti nollaksi. Muihin tulkintoihin tämä ei päde, vaan niissä joudutaan aina suorittamaan testi; positiivinen luku jätetään koskemattomaksi ja negatiiviseen lukuun sovelletaan etumerkinvaihtomenetelmää.

Otetaan esimerkkinä yhteenlasku 3+(-4) kullakin menetelmällä:





   11 




Suora:

  0011


1-kompl.:

  0011


2-kompl.:

  0011


+ 1100



+ 1011



+ 1100


  1111



  1110



  1111


  (-7)



  (-1)



  (-1)

Oikea tulos saatiin ainoastaan 1- ja 2-komplementtiesityksissä.

Esimerkki (-1)+(-4):


 1    



 111  



 11   

Suora:

  1001


1-kompl.:

  1110


2-kompl.:

  1111


+ 1100



+ 1011



+ 1100


  0101



  1001



  1011


  (+5)



  (-6)



  (-5)

Nyt vain 2-komplementtiesityksessä saatiin oikea tulos. Mainittakoon kuitenkin, että myös 1-komplementilla päästäisiin oikeaan tulokseen, mikäli neljän bitistä "yli" jäänyt bitti lisättäisiin vielä kerran lopulliseen tulokseen.

Voidaan kuitenkin todeta, että 2-komplementille jää selvät edut muihin menetelmiin verrattuna: yksi ainoa esitys nollalle ja yhteenlasku menee automaattisesti oikein.