Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
sywane10([1×2]+[0×1]=2),więcwpisujemy0jakosumęiprzenosimy
1donastępnejcyfry.Ponieważśrodkowebitytozera,mamytylko1,które
przenieśliśmyzprawejkolumny,itylewynosisuma.Nakoniecdodajemybity
wkolumniepolewejstronie:0dodać1dajenam1,równieżwsystemiedwój-
kowym.Wynikiemjestwięcliczba110wsystemiedwójkowymlub6wsyste-
miedziesiętnymitylewłaśniebyśmyotrzymali,gdybyśmydodali1i5.
Możnazauważyć,żezasadydodawaniabinarnegomożnawyrazićwpo-
stacidziałańlogicznych,którebyłyomawianewcześniej,takjaktoilustruje
rysunek1.9.Wrozdziale2przekonamysię,żewtenwłaśniesposóbsprzęt
komputerowywykonujedodawanie.
A
0
0
1
1
B
0
1
0
1
AANDB
0
0
0
1
A+B
00
01
01
10
AXORB
0
1
1
0
A
0
0
1
1
0
1
0
1
B
Rysunek1.9.Dodawaniebinarnezużyciemoperatorówlogicznych
Kiedydodajemydosiebiedwabity,wartościąwynikujestXORtych
bitów,awartościąprzenoszonąjestANDtychbitów.Możnasięprzekonać,
żetoprawda,patrzącnarysunek1.9,gdziedodanie1do1dajewynik10.
Tooznacza,żewartośćprzenoszonawynosi1,atojestwynik,jakibyśmy
otrzymali,wykonującdziałanie(1AND1).Podobnie,wyrażenie(1XOR1)
dajewwyniku0,cojestwartością,jakąprzypisujemytemubitowi.
Dodawaniedosiebiedwóchbitówjestoperacją,którarzadkowystępuje
wpojedynkę.Spójrzmyznowunarysunek1.8:wydajesię,żewkażdejkolum-
niedodajemydosiebiedwabity,aletaknaprawdędodajemydosiebietrzy
bity,ponieważzawszeprzenosimyjakiśbit.Naszczęścieniemusimywiedzieć
nicwięcej,niżwiemydotejpory,żebydodaćdosiebietrzybity.A+B+C
todokładnietosamo,co(A+B)+C,zgodniezregułąłączności.Takwięc
możemydodaćdosiebietrzybity,używającdotegoparydwubitowychdzia-
łańdodawania.
Cojednaksięstanie,jeśliwynikniezmieścisięwliczbiebitów,jakądys-
ponujemy?Wtedymamydoczynieniaztakzwanymprzepełnieniem(overflow),
którezdarzasięzawsze,gdybędziemyprzenosić1znajbardziejznaczącego
bitu.Naprzykład,jeślimamyliczbyczterobitoweidodajemydosiebie1001
(910)i1000(810),towynikiempowinnobyć10001(1710),aleotrzymamy
jedynie0001(110),ponieważniemajużmiejscananajbardziejznaczącybit.
Jaksiępóźniejdowiemywszczegółach,komputerymająrejestrystanu(condition
coderegister),któremiejscemprzeznaczonymdoprzechowywaniadodat-
kowychinformacji.Jednąztakichinformacjijestflagaprzepełnienia(overflow
flag),któryprzechowujewartośćprzeniesionąznajbardziejznaczącegobitu.
Możnasprawdzićwartość,byprzekonaćsię,czydoszłodoprzepełnienia.
Prawdopodobniezdajeszsobiesprawęztego,żemożnarównieżodjąć
jednąliczbęoddrugiej,dodającdopierwszejliczbyliczbęprzeciwnejdodru-
giej.Wnastępnympunkcienauczymysięprzedstawiaćliczbyujemne.Poży-
czaniebitówpozanajmniejznaczącybitnazywamyniedomiarem(underflow).
Komputerymająinatoflagęrejestru.
10Rozdział1