Kezdőoldal » Számítástechnika » Programozás » Az ANSI-C szabványban meg van...

Az ANSI-C szabványban meg van határozva, hogy egy integer hány bites?

Figyelt kérdés

2014. máj. 5. 22:49
1 2
 1/17 iostream ***** válasza:
100%
Röviden: nincs.
2014. máj. 5. 23:07
Hasznos számodra ez a válasz?
 2/17 savanyújóska ***** válasza:
10%
Általában 8 bit, de ez rendszerfüggő, némileg hosszabban.
2014. máj. 5. 23:36
Hasznos számodra ez a válasz?
 3/17 savanyújóska ***** válasza:
21%
Bocs, baromság, az más, 32 bitről indul a sima integer mérete.
2014. máj. 5. 23:38
Hasznos számodra ez a válasz?
 4/17 anonim ***** válasza:

@jóska

Még ez sem igaz.


@K

Nagyon jó kérdés. Nincs. Csak az egyes típusok közötti reláció.

2014. máj. 6. 00:14
Hasznos számodra ez a válasz?
 5/17 anonim ***** válasza:
51%
Azt nem a szabvány, hanem a processzor architektúrája határozza meg. A limits.h-ban lévő INT_MIN és INT_MAX konstansokból következtethetsz rá.
2014. máj. 6. 01:02
Hasznos számodra ez a válasz?
 6/17 A kérdező kommentje:

Nincsenek függvénykönyvtáraim, mivel egy mikrokontrollerhez tartozó fordító kapcsán lettem erre kíváncsi.

Ott ugyanis, mint kiderült, egy integer 2 byte-os előjeles, de elvileg mégis pontosan követi az ANSI-C szabványt, és amit az ANSI-C-ben lehet, azt elvileg azon a kis chippen is.


Szóval ezért kérdeztem, hogy a kettő nem ellentmondásos-e.


De amúgy - OFF - azt így nem értem, hogyha egy integer 16 bites, akkor hogy tud ott a feldolgozóegysége 64 Kilobyte memóriát megcímezni? (a dokumentáció szerint annyi a Flash memória mérete, a RAM-é csak 1 KB)

2014. máj. 6. 03:33
 7/17 anonim ***** válasza:
100%

Úgy, hogy elképzelhető, hogy nem integert használ a Flash memória megcímzéséhez...


Egyébként az integer mérete mindig "fix", sizeof(int).


Amit lehet tudni, hogy:


sizeof(char) <= sizeof(int)


Igazából ha úgy akarod használni, hogy több architektúrát is támogasson a programod, amelynek mondjuk 16 vagy 32 bites integerjei vannak, akkor kénytelen leszel egy olyan library-t használni, amely ezeket megvalósítja.

2014. máj. 6. 06:54
Hasznos számodra ez a válasz?
 8/17 anonim ***** válasza:

C90-ben viszont elvileg meg tudod ezt tenni:


typedef unsigned long uint32_t ;


Igy az unsigned long típus 32 bites lesz.

2014. máj. 6. 06:57
Hasznos számodra ez a válasz?
 9/17 A kérdező kommentje:

"Úgy, hogy elképzelhető, hogy nem integert használ a Flash memória megcímzéséhez..."


Szóval akkor nem attól 16 bites egy integer, mert maga a processzor is az?!


Mert PC-n ez általában így van tudtommal. Ahány bites egy processzor, anyi bithosszú számot is tud kezelni. Vagy nem?

2014. máj. 6. 07:52
 10/17 anonim ***** válasza:
Valóban annyit tudni, hogy sizeof(char) <= sizeof(int). Viszont a char legalább 8 bites, tehát az int is legalább 8 bites. A 32 bites rendszer is tud 64 bites számot kezelni. Amire gondolsz az a memória megcímzéséhez használt bitek száma. 64 bites rendszeren is lehet a long 32 bites tehát nem ettől függ.
2014. máj. 6. 08:58
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!