Hogyan kell kettes komplemensben műveleteket végezni?
összeadás és kivonás.
Addig eljutottam hogy kettes számrendszerbe átváltoma számokat, de ott megálla tudomány.
126+48
99-26 és ehhez hasonlók vannak.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Először is, szerintem a komplemens müvelet csak a kivonáshoz kell, összeadáshoz nem. Összeadni pedig ugyanúgy kell mint akámelyik számrendszerben. Amikor nagyságrendet lépsz át akkor lesz maradékod, he nem akkor nincs. 2-es számrendszerben általában azt is meg kell adni, hogy a műveletet hány biten akarod elvégezni, másképpen nem működik a komplemens aritmetika. Pl egy 4 bites összeadás: 1010+1011=0101 a valódi eredmény 10101 lenne, de ez már 5 bites (ez az ún. túlcsordulás). A fenti összeadást helyiértékenként az alábbiak szerint kell elvégezni:
1. helyiérték: 0+1=1 nincs maradék
2. helyiérték: 1+1=0 maradék 1
3. helyiérték: 0+0=0, de ehhez hozzájön az előző helyről származó maradék, azaz az 1, tehát 0+0+maradék=1
4. helyiérték: 1+1=0 marad 1
és az 5. 1 lesz a 4. helyiértékről áthozott maradék miatt.
A kettes komplemenst kivonáshoz használják, kettes számrendszerben egy szám mínusz egy másik szám egyenlő az első szám plusz a második szám kettes komplemense. Tehát a komplemens aritmetika lényege, hogy összeadást csinál a kivonásból.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
Kettes komplemensben ki kell kötni először, hogy hány bites lesz a szám. Például legyen 8 bit. (Ezzel -128-tól +127-ig lehet számokat ábrázolni.)
126+48:
01111110 (126)
00110000 (48)
Ugyanúgy kell az összeadást csinálni, mint 10-es számrendszerben, tehát jobbról balra, csak persze 1+1=10 lesz. Az eredmény:
10101110
Ez, ha előjel nélküli számként képzeljük el a 8 bitet, 174-et jelent (ami tényleg 126+48). Viszont kettes komplemensben ez már negatív szám (-82), hisz az első bitje 1-es. Ez azért van, mert 8 biten a 144-et nem lehet már ábrázolni, hisz nagyobb 127-nél. Szóval túlcsordulás történt.
A másik példád:
99-26
01100011 (99)
00011010 (26)
Kivonni úgy kell kettes komplemensben, hogy vesszük a szám negáltját (mínusz egyszeresét), és összeadjuk a kettőt. Egy szám negáltját úgy kell csinálni, hogy először vesszük az egyes komplemensét, vagyis minden bitet az ellenkezőjére alakítunk:
11100101
és hozzáadunk 1-et:
11100110 (-26)
És most összeadjuk a két számot pont ugyanúgy, mintha előjel nélküli számok lennének. Vagyis:
01100011 (99)
11100110 (-26)
---------
01001001 (73)
Figyelem! Az utolsó összeadás az volt, hogy 0-hoz hozzá kellett adni 1-et meg az alatt lévő helyiértékről a fennmaradt 1-et is. Ez összesen kettő, amit 10-nak kell leírni. A 0-át oda is tudjuk írni (ez lett a legnagyobb helyiértékű bit), de az 1-re nincs hely, mert csak 8 bitünk van. Ez most nem lesz túlcsordulás, mert a két szám nem azonos előjelű volt.
Nem biztos, hogy minden érthető volt, kérdezz rá, ami nem tiszta.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
Kettes komplemensben az elso jegy az elojel.
Ha az elojel pozitiv, az elso jegy 0.
Ha az elojel negativ, az elso jegy 1.
Namost a szam maradek resze pozitiv szam eseten a 2-es szamrendszerbeli erteke ahogy irtad.
Negativ szam eseten is ki kell szamolni a 2-es szamrendszerbeli erteket, majd az egyeseket es 0-ka felcserelni es 1-et hozzaadni,
Igy pl 0110 tizesben 6
1110 az 1-gyel kezdodik, tehat negativ lesz az elojele, marad 110, ebbol 1-et kivonva 101 lesz, felcserelve az 1 es 0 jeleket 010-t kapunk ami 2 tizes szamrendszerben, vagyis az 1110 az nem mas mint -2 ha el nem szamoltam.
Egy X szam onmaga lesz kettes komplemensben ha X>0, 2^n-|X| lesz ha X<0.
pozitiv szamot siman atirsz 2-es szamrendszerre, negativ szamnal veszed az abszolut erteket es kivonod egy nala pont nagyobb 2 hatvanybol es ezt irod at kettes szamrendszerre. Pl -30 eseten 32-30=2 amit ar kell irnod.
Figyelni kell a szamjegyek szamar. 32 = 100000
vagyis a -30 kettes komplemensben az lesz, hogy 100010
Nezzuk, hogy az elozo szabaly szerint mukodik-e amit csinaltunk. Levonunk 1-et, az 100001, felcsereljuk a 0-kat es 1-eket: 011110=16+8+4+2=30 az elojel negativ, mert az eredeti szam 1-gyel kezdodott, tehat -30 az eredmeny, minden rendben van.
Hogy lesz az osszeadas mondjuk 5 biten ?
00101= +5
00101= +5
---------
01010=+10
Ugyanez 4 biten nem mukodne, mert 4 biten 10 nem abrazolhato.
A kivonas ugy megy, hogy ellenkezo elojellel osseadsz:
00101=+5
10010=-14
---------
10111=-9
Az osszeadas ugy megy mint kettes szamrendszerben 1+0 az 1,
0+0 az 0, 1+1 az leirod a 0-t maradt az 1, es a kovetkezo jegyhez hozza adsz 1-et. 1+1+1 az 11, vagyis leirod az 1-et, maradt az 1 amit hozza adsz a kovetkezo jegyhez.
Ha ez igy nem teljesen vilagos,
itt van pl egy szines szagos magyarazat:
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!