Jsem nový v programování, jaký je rozdíl mezi 32bitovým a 64bitovým systémem, co bych měl vědět při psaní programu C ++?


Odpověď 1:

To, co přesně představuje N-bitový systém, není vždy dohodnuto. Osobně to považuji za počítačový systém, jehož registry pro všeobecné použití CPU jsou široké N bitů.

Například můj druhý počítač měl procesor Motorola 68008: Měl 32bitové registry, ale interně fungoval pouze na 16 bitech (půl registru) najednou a externě komunikoval s pamětí pouze 8 bitů najednou. Takže i když to bylo součástí 32bitové rodiny CPU, někdy se tomu říkalo 8/16/32 bitové CPU. Podle mé definice je to 32bitový procesor.

Podobně má Intel i486 32bitové registry pro všeobecné použití, ale má také 80bitové registry s pohyblivou řádovou čárkou: Nikdo to však nepovažuje za 80bitový počítač.

Když píšete C ++, jste obecně chráněni před všemi těmito počty bitů, ale projeví se ve velikosti, zarovnání a rozsahu některých základních typů. Například int bude obvykle 32bitový celočíselný typ a dlouhý je téměř vždy 64bitový celočíselný typ. V závislosti na platformě však může být dlouhý jeden. Ukazatele budou obvykle mít na 32bitových platformách 4 bajty a na 64bitových platformách 8 bajtů (což je často hlavní výhoda 64bitových systémů oproti 32bitovým systémům: díky 32 širší ukazatele).