Kezdőoldal » Közoktatás, tanfolyamok » Egyéb kérdések » Hogyan kell számrendszernél...

Hogyan kell számrendszernél összeadni meg kivonni?

Figyelt kérdés

120

-91


Pl.. és nem olyan okos válaszokat várok, hogy 120-91=29, mert azt én is tudom..:D Sőt, annyit is tudok, hogy a 120at el kell osztogatni mindig 2vel, majd a maradékot jobb oldalra felírni.. meg vmi olyasmit is, hogy utána át kell alakítani 2es komplemenssé, de onnantól nekem magas. Köszi, aki segít!


2012. szept. 18. 16:15
 1/9 anonim ***** válasza:

Kettes komplemenssé úgy alakítasz, hogy minden bitet (helyiértéket) megfordítasz, és hozzáadsz egyet.

Ha informatikai szempontból kérdezed, akkor először találd ki, hány biten ábrázolod az egészeket. Írd fel kettes komplemensként őket (a negatívat kell csak átalakítani), és utána simán add össze. Ha a legnagyobb helyiérték 1-es lett (és nincs carry/overflow), akkor az negatív. Ekkor megint megcsinálod a kettes kompl. trükköt, és megkapod a negatív eremény abszolút értékét.

2012. szept. 18. 16:23
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:
Példával nem tudod illusztrálni? :(
2012. szept. 18. 16:31
 3/9 A kérdező kommentje:
És informatikai szempontból kérdezem..
2012. szept. 18. 16:32
 4/9 anonim ***** válasza:

120 / 2 = 60 marad: 0

60 / 2 = 30 marad: 0

30 / 2 = 15 marad: 0

15 / 2 = 7 marad: 1

7 / 2 = 3 marad: 1

3 / 2 = 1 marad: 1

1 / 2 = 0 marad: 1


A maradékok lentről felfelé: 1111000


Legyen 8 biten ábrázolva: 0111 1000

(Széthúztam, hogy jobban látszódjon, és eléírtam még egy nullát.)


A 91 ugyanígy: 0101 1011


A -91:

0101 1011

1010 0100 / invertálás

1010 0101 / +1, ez a -91, kettes komplemens alakban.


Összeadjuk:

_1010 0101

_0111 1000

-------------------

10001 1101


A felső, 9. helyiértéket simán levágjuk.

Így a 8 bites eredmény felső helyiértéke 0, vagyis pozitív szám lett, ami amúgy a 29.


(Remélem nem néztem el semmit.)

2012. szept. 18. 16:46
Hasznos számodra ez a válasz?
 5/9 A kérdező kommentje:

köszönöm :)

zöld mancs ;)

2012. szept. 18. 17:15
 6/9 anonim ***** válasza:

A lényeg, hogy egy processzort nem érdekli, hogy a két szám sima pozitív egész, vagy kettes komplemens előjeles, a műveleteket ugyanúgy hajtja végre, és mindenképpen helyes eredmény jön ki. Persze azért visszajelez, hogy pozitív egészként volt-e túlcsordulás a felső utáni bitre (carry), és hogy kettes komplemensként volt-e túlcsordulás a felső, előjel bitbe (overflow). Ezután a program majd eldönti, melyiket használja fel, ő tudja, milyen számok is voltak valójában, az már értelmezés kérdése. A művelet maga viszont ugyanúgy hajtódik végre mindkét esetben.

:)

2012. szept. 18. 17:24
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:
...A példában például volt carry, mert volt egy bit túlcsorsulás, amennyiben sima egész számok lettek volna. Viszont overflow nem volt, mert az előjeles eredmény szépen belefért a nyolc bitbe, úgy ad helyes eredményt, ha nem törődünk a túlcsordult bittel. A proci ezzel a két jelzőbittel segíti az eredmény értelmezését.
2012. szept. 18. 17:28
Hasznos számodra ez a válasz?
 8/9 A kérdező kommentje:

Jaj..:DD

Nekem elég, ha dogában ki tudom számolni.

2012. szept. 18. 17:31
 9/9 anonim ***** válasza:
Ja, bocsi. :D
2012. szept. 18. 17:33
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!