Kezdőoldal » Számítástechnika » Programozás » Ez hogyan lehetséges?

Ez hogyan lehetséges?

Figyelt kérdés

Gondolkodtam a számítógép számábrázolásán és azt vettem észre, hogy a 10-es számrendszerbeli 4-es és a mínusz 4-es 2-es számrendszerben ugyan úgy van ábrázolva.


4(10)=100(2)

100(2) 1-es komplemense: 011

100(2) 2-es komplemense: 011+001=100


Hogyan tudja megkülönböztetni a gép a pozitív 4-est a negatív 4-estől?


2015. szept. 21. 19:51
 1/5 anonim ***** válasza:

3 biten -4 és 3 között lehet ábrázolni a számokat 2-es komplementeres számábrázolásnál. Az elő bit egyben az előjelre is utal, ahol az 1 a negatív, 0 a pozitív.


A válasz a kérdésedre pedig az hogy a számítógép 32 vagy akár 64 biten is tudja ábrázolni a számokat, így elég nagy számok is beleférnek.


8 biten a 4 és a -4:

00000100

11111100

Lehet látni hogy különböznek.

2015. szept. 21. 20:00
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:
Köszi :)
2015. szept. 21. 20:03
 3/5 anonim ***** válasza:
51%

A hardver nem különbözteti meg, csak a szoftver.


A hardvert nem igazán érdekli, miket hol tárolsz, ő csak végrehajtja a szoftver utasításait. A programozónak kell tudnia, hogy az adatok bizonyos helyen milyen jelentéssel bírnak.

2015. szept. 21. 20:24
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
54%

"8 biten a 4 és a -4:

00000100

11111100

Lehet látni hogy különböznek."


8 biten a +128 és a -128:

10000000

10000000


32 biten a 2147483648 és a -2147483648:

10000000000...

10000000000...


Utóbbi válaszoló már jól mondta, attól függ az egész, hogy a program miként kezeli az adatokat, nem árt tudni, hogy mit hová rakott, és célszerű azt mindig olyan típusként kezelni. Ha egy 32 bites unsigned integer-nek szánt változót signed-ként olvas ki (kettes komplemens), az az ő dolga (ez általában nem így van nyilván, de megteheted).

2015. szept. 22. 03:15
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:

8 biten 2-es komplementeren nincs olyan hogy +128 és pont. Ha valakinek azt mondod hogy 2-es komplementerben 8 biten ábrázoltad a 128-at, ki fog röhögni, mert olyan nincs.

Ne akarjunk már 8 biten nagyobb számot ábrázolni mint amekkorát tudunk és a kérdés nem is erre vonatkozott.


A kérdés az volt hogy 3 biten miért ugyan az a +4 és a -4, a válasz az pedig az mert 3 biten kettes komplementerben *NEM* lehet ábrázolni a +4-et, ezt azt hiszem nem nehéz megérteni. Ennek az egyszerű tények semmi köze ahhoz hogy ha a programozó a kettes komplementerű negatív számok típusát összekeveri akkor mi történik mert az a programozó saját hülyesége és sok nyelvben invalid lesz az érték esetleg még egy exceptionnel is megdob érte.

2015. szept. 22. 11:11
Hasznos számodra ez a válasz?

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

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!