You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Etumerkittömät kokonaisluvut

Bittijono voidaan ymmärtää positiiviseksi kokonaisluvuksi:

    kahdeksan bitin tavu voi tällöin sisältää arvot 0 - 255 = 00000000...11111111b = 0377 = 0xff.
    
    16-bittinen luku voi sisältää arvot 0 - 65 535 = 00000000 00000000 ... 11111111 11111111 =
                                                   = 0 ... 0177777 = 0 ... 0xffff.
    
    32-bittinen luku voi sisältää arvot 0 - 4 294 967 295 = 0.... 037777777777 = 0... 0xffffffff

Mutta yleensä tarvitsemme myös negatiivisia lukuja, jolloin tarvitsemme kahden komplementtiesitystä

    kahdeksan bitin tavu voi tällöin sisältää arvot -128 - 0 -  127= 10000000 - 00000000 - 01111111 = -0200 - 0 0177 = -0x80 - 0 - 0x7f
      .
    16-bittinen luku voi sisältää arvot 32768 - 0 - 32767 .

    32-bittiseen kaksoissanaan mahtuu luku 2147483648 - 2147483647.

HUOM! jos luvun ensimmäinen numero on nolla (0) , ymmärretään se C-ohjelmassa oktaaliluvuksi ja jos luvun kaksi ensimmäistä merkkiä ovat 0x, ymmärretään luku heksadesimaaliluvuksi. Binäärilukua ei voi suoraan kirjoittaa muuttujan arvoksi, vaan se pitää esittää joko oktaali- tai heksalukuna.

C-ohjelmassa lukuarvot talletetaan aina muuttujiin. Muuttuja on aina tietyn kokoinen esim. char tyypin muuttuja sisältää kahdeksan bittiä. int on 16, 32 tai 64 bittiä riippuen järjestelmän käyttämästä sanan pituudesta. Pienessä sulautetussa järjestelmässä int on yleensä 16 bittiä.

  • No labels
You must log in to comment.