You are on page 1of 3

Reprezentacja liczb

Kod uzupenieniowy przypomnienie


Mamy n=8 bitw. Chcemy zapisa liczb -12 w kodzie uzupenieniowym do dwch (U2). Pamitamy,
w jaki sposb zamienia si kod U2 danej liczby cakowitej na kod liczby do niej przeciwnej:
zamieniamy wszystkie bity na przeciwne i do otrzymanej liczby binarnej dodajemy 1. Kod U2 dla liczb
dodatnich jest taki sam jak ich kod naturalny. Zaczynamy wic od zapisania liczby 12 na omiu bitach:
00001100
Po zanegowaniu wszystkich bitw otrzymujemy:
11110011
Po dodaniu jedynki otrzymujemy:
11110100
Moemy zatem napisa: -12(10) = 11110100(U2)

Naturalny kod binarny dla uamkw


Reprezentacja uamkw dodatnich w systemie binarnym jest analogiczna jak w systemie dziesitnym.
Wemy liczb 0,2573 = 2*10-1+5*10-2+7*10-3+3*10-4.
W systemie binarnym chcemy dany uamek przedstawi jako sum ujemnych potg 2.
Powiedzmy, e chcemy zapisa liczb dziesitn 0,1875 w systemie binarnym. Mamy
0,1875(10) = b-1*2-1+ b-2*2-2 + b-1*2-3 + b-1*2-4 + b-1*2-5+...
Co naley zrobi, aby otrzyma pierwsz po przecinku cyfr binarn? Zauwamy, e ta cyfra jest
czci cakowit liczby 0.1875 * 2 = 0.375. Mamy wic b-1=0. Postpujc dalej analogicznie
otrzymujemy kolejne cyfry:
0,1875 * 2 = 0,375
0,375 * 2 = 0,75
0,75 *2 = 1,5
0,5*2 = 1,0
Jeeli dojdziemy do liczby cakowitej, to proces si koczy i dana liczba ma skoczone rozwinicie
binarne, w przeciwnym przypadku rozwinicie jest nieskoczone.
W naszym przypadku moemy napisa mamy rozwinicie skoczone:
0,1875(10) = 0,0011(2)
wiczenie 1. Zamie na uamek dziesitny liczb 101,1101(2).
wiczenie 2. Zapisz w kodzie binarnym nastpujce liczby dziesitne:

a)
b)
c)
d)

0,625
0,84375
0,2
3,6875

Reprezentacja staopozycyjna
Mamy do dyspozycji N bitw. Cz bitw przeznaczamy do zapisania czci cakowitej liczby, a cz
bitw na zapisanie czci uamkowej oraz znaku liczby.

bit
znaku

cz cakowita
n bitw

cz uamkowa
m bitw

Mamy N=n+m+1.
Przypumy, e chcemy zapisa liczb dziesitn -12,1875 (m=n=5, N=5+5+1=11).
Najpierw znajdujemy reprezentacj binarn liczby dodatniej 12,1875. Mamy
12,1875(10) = 1100,0011(2)
Nastpnie zapisujemy cz cakowit i uamkow na odpowiedniej liczbie bitw; bit znaku ma
warto zero, poniewa liczba jest dodatnia (poniej bit znaku jest wyrniony, a zamiast przecinka
oddzielajcego cz cakowit od czci uamkowej mamy spacj):
0 01100 00110
Nastpnie stosujemy (zapominajc o przecinku) ten sam algorytm wyznaczania kodu U2 liczby
przeciwnej jak w przypadku liczb cakowitych. Innymi sowy, zamieniamy nasz liczb na uamek o
mianowniku 25 (oglnie 2m) i znajdujemy kod U2 licznika tego uamka. Wobec tego negujemy
wszystkie bity kodu 0 01100 00110 otrzymujc:
1 10011 11001
po dodaniu 1 otrzymujemy:
1 10011 11010
a zatem:
-12,1875(10) = 110011,11010(U2)

Reprezentacja zmiennopozycyjna
Ta reprezentacja polega na tym, e liczb zapisujemy w postaci
liczba = m * 2c,
gdzie m jest mantys, a c jest cech. Jeeli mantysa spenia warunek |m| < 1, to mwimy, e
liczba jest w postaci znormalizowanej.
Na cech przeznaczamy n+1 bitw, a na mantys m+1 bitw. Mantys i cech zapisujemy (zwykle) w
kodzie U2.

cecha (n+1 bitw)

bit znaku
cechy

mantysa (m+1 bitw)

bit znaku
mantysy

Przykad. Chcemy zapisa liczb -9,25 w reprezentacji zmiennopozycyjnej znormalizowanej. Na cech


i mantys przeznaczamy po 8 bitw.
Mamy -9,25(10) = - 1001,01(2) = - 0,100101 * 10100(2)
mantysa = - 0,100101(2)
cecha = 100(2)
Zapisujemy cech w kodzie U2: 00000100
Zapisujemy mantys w kodzie U2:
01001010 --> 10110101 --> 10110110
Ostatecznie otrzymujemy kod: 0000010010110110.

wiczenie 3. Jak liczb przedstawia kod 0001010100101101, ktrego pierwsze 6 bitw tworzy kod
cechy, a pozostae stanowi kod mantysy?
wiczenie 4. Zapisz nastpujce liczby w reprezentacji zmiennopozycyjnej znormalizowanej:
a) 5,5
b) -5,5
Na cech i mantys przeznacz po 8 bitw.

You might also like