Speichverwaltung's Verständnis Probleme

Moin,

ich werde leider aus meiner C Lektüre (nein, kein C++) nicht schlau wenn es darum geht zu verstehen weshalb ein Integer auf nem 32Bit Betriebssystem nur zahlen von max 2,XXX millionen zulässt?

Hallo Snokey !

Du meinst wohl 2,XXX Milliarden, nicht Millionen.
Das hat nichts (unmittelbar) mit dem Betriebssystem zu tun, sondern wie gross der Datentyp Integer definiert ist. Zur Zeit ist Integer sowohl auf 32 als auch 64 - Bit Betriebssystemen mit 32 Bit definiert.
2 hoch 32 = 4.294.967.296 Werte sind damit darstellbar, also z.B. alle Zahlen von 0 bis 4.294.967.296 - 1 (-1 weil ja 0 auch einer dieser Werte ist), also 0 - 4.294.967.295.
In der Mathematik hat man aber oft das Problem, dass man auch negative Zahlen braucht, also muss man die Hälfte dieser Zahlen für negative Werte vorsehen, das ist dann signed Integer (In C bedeutet die Typdeklaration ‚int‘ IMMER ‚signed int‘, will man vorzeichenlose Zahlen muss man diese explizit als ‚unsigned int‘ deklarieren).
In der üblichen Zweierkomplement-Darstellung (siehe http://de.wikipedia.org/wiki/Zweierkomplement) sind alle Werte deren höchstes Bit mit 1 beginnt negativ, alle deren höchstes Bit mit 0 beginnt positiv.
Damit ergeben sich dann die Zahlen von −2.147.483.648 bis +2147483647.

mfg
Christof

Hallo

ich werde leider aus meiner C Lektüre (nein, kein C++) nicht
schlau wenn es darum geht zu verstehen weshalb ein Integer auf
nem 32Bit Betriebssystem nur zahlen von max 2,XXX millionen
zulässt?

Ein 1bit-Betriebssystem würde (integer/Maschinenwort)
nur Zahlen von 0 bis eins (also 2 Stück) zulassen,
weil das eine Bit entweder an oder aus sein kann.

Ein 2bit-Betriebssystem würde (integer/Maschinenwort)
nur Zahlen von 0 bis 3 (also 4 Stück) zulassen,
weil das eine Bit entweder an oder aus sein kann
und das andere Bit entweder an oder aus sein kann.

ein 32bit-Betriebssystem würde …

Grüße

CMБ