Hogyan oldjam? Decimális számból 2 bájton binárisan hogy kell?
mivel mínusz, ezért a típusa előjeles egész lesz, tehát az első bit feláldozásával −32768 és 32767 közti értéket tudsz megadni (a 0 - 65535 helyett).
utána már csak binárissá konvertálod az abszolutértékét és odaírod.
1 bit: Egységnyi infomráció, 0 vagy 1 lehet az értéke. 1 bájt: 8 bit. Tehát 16 biten kell ábrázolnod a számot. (Nyilván binárisan.) Itt több módszer közül választhatsz, vegyük a legegyszerűbbet, ahol az első bitet feláldozzuk, és előjelbitként fog viselkedni. (Ezzel 2^16-1 helyett 2^15-1 számot tudunk ábrázolni, mindkét irányban.) Itt úgy kapod meg a számot, hogy ábrázolod 15 biten, és ha negatív, 1-be billented az első bitet, valahogy így:
345 binárisan: 256 + 64 + 16 + 8 + 1 = 101011001(2)
Mivel nekünk 15 biten kell, az elejére annyi nullát írunk, hogy összesen 15 bitnyi legyen:
345(10) = 000000101011001(2)
S minthogy negatív, a 16. bit 1-es:
-345(10) = 1000000101011001(2)
Ennek az ábrázolási módnak egyetlen hátránya, hogy nem túl gazdaságos, az előjelbit miatt nagyon nagy tartományt elvesztünk, erre találták ki az 1-es és 2-es komplemens (mivel az egyes komplemensben 2 szám van a 0-ra) írásmódokat, de ez már egyetemi anyag. (Digitális technika I.)
Akkor ugyanúgy járunk el mintha pozitív decimálist alakítanánk binárisba, csak 16 számjegyes lesz, kiegészítjük 0-val és az első szám azért 1 mert negatív.
Ha így van akkor értem!
Köszönöm!
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!