Jag är ny på att programmera, vad är skillnaden mellan 32-bitars och 64-bitarssystem, vad ska jag veta när jag skriver ett C ++ -program?


Svar 1:

Vad som exakt utgör ett N-bitarsystem är inte alltid enigt om. Personligen tänker jag på det som ett datorsystem vars CPU: s allmänna register är N-bitar breda.

Till exempel hade min andra dator en Motorola 68008 CPU: Den hade 32-bitars register, men internt fungerade endast på 16 bitar (ett halvt register) åt gången och kommunicerade externt med minnet bara 8 bitar åt gången. Så även om det var en del av en 32-bitars CPU-familj kallades den ibland en 8/16/32-bitars CPU. Med min definition är det en 32-bitars CPU.

På liknande sätt har Intel i486 32-bitars allmänna register, men den har också 80-bitars flyttalsregister: Ingen anser det dock som en 80-bitars dator.

När du skriver C ++ är du vanligtvis skyddad från alla dessa biträkningar, men de återspeglas i storlek, justering och räckvidd för några av de grundläggande typerna. Exempelvis är vanligtvis en 32-bitars heltalstyp och lång lång är ganska mycket alltid en 64-bitars heltalstyp. Men länge kan vara antingen en, beroende på plattformen. Också typiskt kommer pekare att vara 4 byte långa på 32-bitars plattformar och 8 byte långa på 64-bitars plattformar (och det är ofta den främsta fördelen med 64-bitarssystem över 32-bitars-system: de kan adressera mer minne på grund av bredare pekare).