Kezdőoldal » Közoktatás, tanfolyamok » Házifeladat kérdések » Hogyan kell kettes komplemensb...

Hogyan kell kettes komplemensben műveleteket végezni?

Figyelt kérdés

összeadás és kivonás.

Addig eljutottam hogy kettes számrendszerbe átváltoma számokat, de ott megálla tudomány.


2011. szept. 20. 21:10
 1/4 A kérdező kommentje:

126+48

99-26 és ehhez hasonlók vannak.

2011. szept. 20. 21:10
 2/4 anonim ***** válasza:

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.

2011. szept. 20. 21:32
Hasznos számodra ez a válasz?
 3/4 bongolo ***** válasza:
100%

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.

2011. szept. 20. 21:50
Hasznos számodra ez a válasz?
 4/4 BKRS ***** válasza:

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:

[link]

2011. szept. 20. 21:54
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!