Kezdőoldal » Számítástechnika » Programozás » C++: Ha előjeles típusú...

C++: Ha előjeles típusú változónak (signed) pozitív értéket adok akkor ez az érték is kettes komplemensképzéssel tárolódik?

Figyelt kérdés
2013. febr. 1. 15:44
1 2 3
 1/23 iostream ***** válasza:
Félreértés van itt. Amikor értéket adsz, nem képződik semmiféle komplemens, ha intnek intet adsz értékül, akkor simán átmásolja azt az N byte-ot. Kettes komplemens egy esetben képződik, ha leírsz egy int literált (azaz egy konkrét szám szerepel a forráskódban), ott a szöveges értékből képződik egy kettes komplemensű szám (már ha nem unsigned a literál típusa).
2013. febr. 1. 15:57
Hasznos számodra ez a válasz?
 2/23 A kérdező kommentje:

Igen-igen-igen arra gondoltam amit leírtál, int literál. Szóval ha az int literál előjeles (signed) akkor kettes komplemensképzéssel tárolja akkor is ha az érték pozitív, ugye?


Köszönöm, üdv

2013. febr. 1. 16:03
 3/23 iostream ***** válasza:
Itt meg nem értem a kérdést: a pozitív számok kettes komplemensben is pontosan ugyanúgy néznek ki, mint előjel nélküli ábrázolásnál.
2013. febr. 1. 16:24
Hasznos számodra ez a válasz?
 4/23 A kérdező kommentje:

Akkor mondok egy pl-t


signed short int x;


2 bájtos, előjeles változó.


Ha pl


a = -682;


akkor a 682 binárisan ábrázolva: 0000 0010 1010 1010 (természetesen szóközöket csak az olvashatóság kedvéért teszek). A negatív előjel miatt ez kettes komplemensképzéssel fog tárolódni, ami így néz ki: 1111 1101 0101 0110


Amikor lekérem az értéket, kettes komplemensképzéssel "visszafejtem", majd a legmagasabb helyiértéken lévő bit ugye az előjelbit (ha jól tudom), így megvan a negatív előjel is.


A kérdésem: Ha


a = 682


Akkor ez hogy kerül letárolásra? Előjeles abszolútértékes ábrázolás/egyes komplemens/kettes komplemens/más? Természetesen ugyanaz a változó.


Ha viszont


unsigned short x;


x = 682;


Akkor csak simán abárolja binárisan?


Köszi szépen h segítesz, üdv

2013. febr. 1. 16:36
 5/23 iostream ***** válasza:

"a = 682


Akkor ez hogy kerül letárolásra? Előjeles abszolútértékes ábrázolás/egyes komplemens/kettes komplemens/más? Természetesen ugyanaz a változó."


Mivel mindenhol ugyanúgy néz ki, ezért teljesen mindegy.

2013. febr. 1. 16:44
Hasznos számodra ez a válasz?
 6/23 A kérdező kommentje:

Ugyanúgy?? Ezt nem vágom akkor.


Előjeles abszolútértékes ábrázolás:


(előjelbit és a szám abszolútértéke)


-682 esetén


1000 0010 1010 1010


Ez hogy lenne már ugyanaz mint a kettes komplemensképzéssel:


1111 1101 0101 0110


??


((amúgy a többi jó amiket írtam?)

2013. febr. 1. 16:48
 7/23 A kérdező kommentje:

Elírtam, nem negatív, hanem pozitív..


a = 682 esetén

2013. febr. 1. 16:49
 8/23 A kérdező kommentje:
ajjj, mégse írtam el, hagyd figyelmem kívül ezt az utolsó 2 posztot
2013. febr. 1. 16:50
 9/23 anonim ***** válasza:

A pozitív számoknak ugyan az a memóriaképe, mindegy hogy signed vagy unsigned, de ezt már leírták, mit nem lehet ezen érteni?

Hasonló kérdés volt már, lehet hogy te kérdezted: http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..

Lehet hogy így jobban megmarad:

Van egy véges számtartományod 2-es számrendszerben. A legkisebb szám csupa 0 jegyből áll, a legnagyobb csupa 1 jegyből áll, akkor ha előjel nélküli számokat veszünk. Ha előre lépkedünk egyesével akkor közeledünk a számtartomány végéhez.

Ha előjeles számokról van szó akkor ugyan az a 1,2,3 .. ha a negatív számokon akarunk közlekedni akkor a számtartomány másik végétől visszafele kell lépkedni.

Elhiszem hogy megértetted ha meg tudod mondani hogy a -12 hogy nézne ki, 5 számjegyen tízes komplemensbe. (Tízes számrendszerbe ugyan ez a "játék".)

2013. febr. 1. 17:23
Hasznos számodra ez a válasz?
 10/23 A kérdező kommentje:

"A pozitív számoknak ugyan az a memóriaképe, mindegy hogy signed vagy unsigned, de ezt már leírták, mit nem lehet ezen érteni? "


Nem ezzel van gondom de akkor nagyon röviden:


signed int a;

a = -12; // kettes komplemensképzéssel kerül tárolásra

a = 10; // és ez?


A kérdésed: 5 számjegyen a -12 TÍZES komplemensképzéssel? Akkor nem vágom; egyes/kettes-ről hallottam csak, a tízes komplemens mit takar?

2013. febr. 1. 17:36
1 2 3

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!