Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Tabela1.4.ciągdalszy
Znak
1
1
1
1
1
1
22
21
20
Postaćdziesiętna
1
0
1
–2
1
0
0
–3
0
1
1
–4
0
1
0
–5
0
0
1
–6
0
0
0
–7
Jakwidać,odwróceniewszystkichbitówliczby0111(+7)dajenam1000
(–7).
Zapiswpostaciuzupełnieniadojednegobędziemiałjednakproblem
zdwomaróżnymipostaciamizera.Nadalniedasiętutajzbytłatwowyko-
naćdodawania.Abywszystkosięzgadzało,trzebadodawać1dowyniku,jeśli
wczasiedodawaniawystąpiłoprzeniesieniepozabitznaku(end-aroundcarry).
Przenosimywtedy1zMSBznowudoLSB.Rysunek1.11ilustrujeproce-
durę.
+
+
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
+2
+1
–1
0
1
(przeniesieniepozabitznaku)
Rysunek1.11.Dodawaniezużyciemreprezentacjiuzupełnieniado1
Abydodać+2i–1zużyciemuzupełnieniado1,przeprowadzamydoda-
waniebinarneliczb0010i1110tak,jakbyśmytorobilinormalnie.Ponieważ
dodawaniewnajbardziejznaczącymbicie(bicieznaku)dawwyniku10,zapi-
sujemy0iprzenosimy1pozabitznaku.Dysponujemytylkoczteremabitami,
więcprzenosimy1zMSBzpowrotemdoLSB,codajenam0001albo+1,co
jestpoprawnąsumą+2i–1.Jakwidać,sprawienie,żebydodawaniedziałało
poprawnie,znacznieskomplikowałosystem.
Chociażostatecznietodziała,tojednakrozwiązanieniejestoptymalne,
choćbydlatego,żepotrzebujemydodatkowegokawałkasprzętudotego,by
przeprowadzićprzeniesieniepozabitznaku.
Anipostaćznak-moduł,aniuzupełnieniedo1niestosowanewewspół-
czesnychkomputerach.Arytmetykazapomocątychmetodniedziałapo-
prawnie,chyba,żedodasiędodatkowysprzęt,atokosztuje.Patrzmydalej,
możeudanamsięwymyślićpostać,któraeliminujenaszproblem.
Uzupełnieniedo2
Cobysięstałosię,gdybyśmyniedodawaliżadnegosprzętuitrzymalisiępo
prostuoperatorówXORiAND?Zobaczmy,jakiukładbitów,gdydodamy
godo+1,danam0inazwijmytenukład–1.Jeślinadaldysponujemyczte-
remabitami,+1to0001.Dodanie1111dotejliczbydanam0000,takjak
Językwewnętrznykomputerów
13