Je suis nouveau dans la programmation, quelle est la différence entre un système 32 bits et 64 bits, que dois-je savoir lors de l'écriture d'un programme C ++?


Réponse 1:

Ce qui constitue exactement un système à N bits n'est pas toujours convenu. Personnellement, je le considère comme un système informatique dont les registres à usage général du processeur ont une largeur de N bits.

Par exemple, mon deuxième ordinateur avait un processeur Motorola 68008: il avait des registres 32 bits, mais ne fonctionnait en interne que sur 16 bits (un demi-registre) à la fois, et ne communiquait en externe avec la mémoire que 8 bits à la fois. Ainsi, même s'il faisait partie d'une famille de processeurs 32 bits, il était parfois appelé processeur 8/16/32 bits. Avec ma définition, c'est un processeur 32 bits.

De même, l'Intel i486 possède des registres à usage général 32 bits, mais il a également des registres à virgule flottante 80 bits: Personne ne le considère cependant comme un ordinateur 80 bits.

Lorsque vous écrivez C ++, vous êtes généralement protégé de tous ces nombres de bits, mais ils se reflètent dans la taille, l'alignement et la plage de certains des types de base. Par exemple, généralement int sera un type entier 32 bits et long long est presque toujours un type entier 64 bits. Cependant, long pourrait être l'un ou l'autre, selon la plate-forme. En outre, généralement, les pointeurs auront une longueur de 4 octets sur les plates-formes 32 bits et de 8 octets sur les plates-formes 64 bits (et c'est souvent le principal avantage des systèmes 64 bits par rapport aux systèmes 32 bits: ils peuvent adresser plus de mémoire en raison de la pointeurs plus larges).