Úvod do programování
Zobrazení čísel v počítači
 Vytisknout studijní materiál

Zobrazení čísel v počítači

Definice

1 slabika = 1 byte = 8 bitů

1 bit = 0 nebo 1 (ve dvojkové soustavě)

Zobrazení celých čísel

Ke zpracování informace v počítači se z důvodu jednoduché realizovatelnosti používá zobrazení číslic nebo celých čísel ve dvojkové soustavě.

Pro zobrazení celých čísel lze v PC použít následujících 7 způsobů zobrazení:

a) dvojkově-desítkový tvar

Př.1. (12345)10

    5        4        3       2        1

0000 0101 0000 0100 0000 0011 0000 0010 0000 0001

b ) zhuštěný dvojkově-desítkový tvar

Př.2. (12345)10

    45      23       01

0100 0101 0010 0011 0000 0001

c) binární soustava

Tento typ zobrazení je použitelný pouze pro kladná čísla !

Př.3.   (123)10

123 / 2   1

61 / 2    1

30 / 2    0

15 / 2    1

7 / 2     1

3 / 2     1

1 / 2     1

                     (1111011)2

d) přímý kód se znaménkem

                znaménko

                absolutní hodnota čísla

Znaménko: zobrazeno ve znaménkovém bitu (bit s nejvyšší vahou).

Kladné číslo : ve znaménkovém bitu : 0

Záporné číslo: ve znaménkovém bitu : 1

Př.4. (5)10 =   00000101 (-5)10 = 10000101

nevýhoda: hodnota obrazu čísla se pro zvětšující hodnotu originálu zvětšuje - kladná čísla

zmenšuje - záporná čísla,

Nepřímý kód (doplňkový kód, inverzní kód, kód s posunutou nulou)

e) doplňkový kód

Kladná čísla se zobrazují stejně, pro záporná čísla je volena báze zn (viz obrázek 1)

               pro

čd……obraz čísla v doplňkovém kódu

n........počet číslic zobrazení

z…….základ soustavy

Rozsah zobrazení je (-zn/2) < č < (zn/2) -1

Př.5. V doplňkovém kódu zobrazte (na 16 bitů) čísla:

      a) 55

Výsledek zapište v šestnáctkové soustavě.

postup viz obrázek 2

(55)10 = (0000 0000 0011 0111)DK =(0037)16

Postup pro zobrazování záporných čísel v doplňkovém kódu:

1. zobrazit kladné číslo v binární soustavě

2. prohodit 1 a 0 v zápise binárního čísla

3. přičíst 1

f) inverzní kód

podobný doplňkovému kódu, rozdíl jen v bázi posunutí

báze zobrazení: zn-1 (viz obrázek 3)

či……obraz čísla v inverzním kódu

n…….počet číslic zobrazení

z…….základ soustavy

Rozsah zobrazení je   (-zn/2)+1 < č < (zn/2) -1

Nula se zobrazí do dvou různých obrazů (kladná a záporná nula)

Pro zobrazení záporných čísel v doplňkovém a inverzním kódu zřejmě platí : čd =či + 1,

tj. při výše popsaném triku neprovádíme krok 3 (přičtení jednotky).

V intervalu nezáporných čísel jsou obě zobrazení (v doplňkovém a inverzním kódu ) identická.

g) kód s posunutou nulou

báze zobrazení: (zn/2) ,nebo (zn/2)-1

Rozsah zobrazení je (-zn/2) < č < (zn/2) -1 nebo (-zn/2)+1 < č < (zn/2)

Př.6. V kódu s posunutou nulou zobrazte (na osm bitů) číslo: (55)10

Výsledek zapište v šestnáctkové soustavě. Báze posunutí (zobrazení) je   = 27-1.

27-1 +55 = 128+54=   (182)pn

(182)10=(1011 0110)2 =(B6)16

Obecně

zobrazení celých čísel (výše zmíněnými 7 způsoby) je prováděno naprosto přesně. Rozsah zobrazení je dán počtem číslic. Pro zobrazení čísla ve dvojkové soustavě se nejčastěji používá slovo o délce 8, 16, 32, nebo 64 bitů.

Zobrazení čísel v pohyblivé řádové čárce

Zobrazení reálných nebo příliš velkých celých čísel se provádí v pohyblivé řádové čárce.

Čísla jsou zobrazena ve tvaru kde:

M…mantisa čísla, zobrazená v soustavě o základu z

E….exponent

z….základ pro výpočet exponentové části

Jedním z používaných formátů pro zobrazení čísel v pohyblivé řádové čárce je formát podle standardu IEEE 754(Institute of Electrical and Electronic Engineers) používaný v moderních počítačích.

Reálná čísla jsou zobrazována

Př. Zobrazte ve formátu IEEE (na 4 bytech) následující reálné číslo:

                           -258,125

Výsledek zapište v šestnáctkové soustavě.

(258)10=(100000010)2

0,125 ∙ 2 = 0,25   0 (0,125)10=(0,001)2

0,25 ∙ 2    = 0,5     0

0,5 ∙ 2      = 1,0     1

(258,125)10=(100000010,001)2

norm. tvar: 1,00000010001*28

exp.: 27-1+8=27+7=10000000+111=(10000111)PN

(258,125)10= (1100 0011 1000 0001 0001 0000 0000 0000)IEEE =

    =    ( C        3        8       1        1        0        0         0 )16