Kezdőoldal » Számítástechnika » Programozás » Hogyan végzem el két binári...

Hogyan végzem el két binári szám külömbségét?

Figyelt kérdés

Nem tudom megoldani a digitális architekturák házifeladatot és egész nap szenvedek vele...


15-37


Kikötés: csak a következő bináris műveletek használhatók: invertálás, összeadás.


Az én eredményem 101010


Ugy csináltam, hogy átalakitottam a 2 számos bináris formátumba, majd vettem a kivonandó kettes komplemensét (nullákat egyre cseréltem, illetve az egyeket nullára majd hozzáadtam egyet) és hozzáadtam a kissebitendőhöz:


Levezetve:

A 15 binárisan: 1111

A 37 binárisan: 100101


A 100101 kettes komplemense: 011011!


Majd az igy kapott számot összeadtam a kissebitendővel.

Azaz: 011011

+ 1111

Ami: 101010


Kérdés, hogy jó-e vagy elrontok valamit?



2016. okt. 22. 15:52
1 2
 1/11 anonim ***** válasza:

A számok, eredmények és a módszer is jó, de egy dolgot elfelejtettél:


6 biten a 100101 nem 37 hanem -27 ha jól számolom. (ha az első bit 1 akkor az negatív)


6 biten -32 és +31 között tudod csak ábrázolni a számokat. Ebből adódóan a 37 miatt legalább 7 bitet kell használni (de inkább 8-at).


Amikor invertálsz vedd figyelembe a 0-kat a szám elején:

(-37) = inv(100101) = inv(00100101) = 11011011

2016. okt. 22. 17:59
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:

Jól csinálod.

A kisebbítendőt és a kivonandót átalakítod bináris számmá,

a kivonandó kettes komplemensét képzed: invertálod és hozzáadsz egyet

majd összeadod a kettőt.


Itt egy példaprogram C-ben:

[link]

2016. okt. 22. 18:00
Hasznos számodra ez a válasz?
 3/11 A kérdező kommentje:

Nálam a 37 decimális szám binéris számmá való átalakitása igy néz ki:


37 | 1

18 | 0

9 | 1

4 | 0

2 | 0

1 | 1


Ami: 100101

2016. okt. 22. 20:04
 4/11 tabaki ***** válasza:

#3:

Itt a problémát láthatólag nem a számok binárissá alakítása jelenti, hanem az, hogy az eredmény is mínusz szám, tehát egy kettes komplemens. Ha ezt „visszacsinálod”, pozitív számként megkapod a különbséget, amit már könnyen visszaszámolhatsz decimálisra -- és persze közben nem felejted el, hogy ez nem maga az eredmény, hanem annak a negatívja.

2016. okt. 23. 00:54
Hasznos számodra ez a válasz?
 5/11 tabaki ***** válasza:

#3: Jézusmária, eddig eszembe sem jutott, hogy már a binárisra való átírással is bajok lehetnek, és tényleg odapillantsak az átalakításod módszerére:

37 | 1

18 | 0

9 | 1

4 | 0

2 | 0

1 | 1


Mi vaaan?

9, 18, 37, mint helyiértékek? Honnan s búbánatból szoptad ezeket? Szerinted miféle szám hatványai? És, ha már elfogadom, hogy létezik decimálisan leírva 37 értékű bináris helyiérték (ebben a nemlétező esetben ott csakugyan 1 állna), akkor miért nem 0 az összes többi? Minek még hozzáadni bármit, ha már 37?

Ha összeadom az átalad kiagyalt furcsaságot, eléggé érdekes egyenlőség jön ki:

1*37 + 0*18 + 1*9 + 0*4 + 0*2 + 1*1 (vagyis 37+9+1) = 47

Magyarán: Szerinted 37 = 47


Javaslom, hogy egyelőre ezt a részét értsd meg, bravúrstiklikkel ráérsz akkor is foglalkozni, ha már a számrendszerek közti átváltás megy.

2016. okt. 23. 10:24
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:
Ajánlom kérd meg a tanárt vagy az osztálytársadat akitől szereted a házi megoldását hogy magyarázza el hogy kell elvégezni a számrendszerek közti átváltást.
2016. okt. 23. 10:50
Hasznos számodra ez a válasz?
 7/11 dq ***** válasza:
100%

valójában az a módszere hogy ha a szám páros akkor 0-t, ha páratlan akkor 1-t ír, utána "elfelezi" a számot. A bal oldalon nem a helyiértékek, hanem a részeredmények állnak.


Van ahol így alakítanak binárisba (vagy legalábbis kb így, ilyesmi lépések vannak benne). A konkrét példán jó eredményt ad (fejjel lefele nézd az eredményt).

2016. okt. 23. 11:09
Hasznos számodra ez a válasz?
 8/11 dq ***** válasza:

Így valahogy:


[link]

2016. okt. 23. 11:15
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:
Ok, tehát azok nem helyi értékek hanem valamiféle maradékszámításos módszer amit a tanár tanított. Elég félreérhető. Akkor viszont nem értem mi a probléma? Le lett írva hogy kell megcsinálni.
2016. okt. 23. 11:47
Hasznos számodra ez a válasz?
 10/11 tabaki ***** válasza:

Na jó, igazatok van, Kérdezőnek meg különösen, aki nemhogy nem hibázott, hanem a tananyag alapján kifogástalanul oldotta meg az átalakítást. Elnézést.

A két számoszlop látványa ettől függetlenül sokkolt egy kissé, még mindig nem tértem magamhoz... Ha én is ezt a szellemesen egyszerű maradékszámításos módszert tanultam volna, valószínűleg a mai napig nem tudnám, hogy miért pont ott vannak az egyesek és a nullák, azon kívül, hogy a számolás közben oda kerülnek. Rémes.

2016. okt. 23. 13:50
Hasznos számodra ez a válasz?
1 2

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!