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.
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.
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.
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!