La différence réside dans la manière dont nous stockons les données dans les ordinateurs.
Vous avez raison de dire que pour une machine théorique de 8 bits, nous ne sommes capables de stocker que 2^8 valeurs dans un seul registre du processeur ou une seule adresse mémoire. (Veuillez garder à l'esprit que cela varie d'une "machine" à l'autre en fonction du processeur utilisé, de l'architecture de la mémoire, etc. Mais pour l'instant, restons-en à une hypothétique machine "stéréotype").
Pour une machine théorique de 16 bits, la valeur maximale dans un registre/emplacement mémoire serait de 2^16, pour une machine de 32 bits, 2^32, etc.
Au fil des ans, les programmeurs ont imaginé toutes sortes de subterfuges pour stocker et manipuler des nombres supérieurs à ceux qui peuvent être stockés dans un seul registre du processeur ou une seule adresse mémoire. Il existe de nombreuses méthodes, mais elles impliquent toutes l'utilisation de plus d'un registre/adresse mémoire pour stocker des valeurs plus grandes que la largeur de leur registre/emplacement mémoire "natif".
Toutes ces méthodes ont pour avantage de permettre à la machine de stocker/traiter des valeurs supérieures à leur capacité native. L'inconvénient est que presque toutes les approches nécessitent de multiples instructions/lectures/etc. de la machine pour traiter ces nombres. Pour les grands nombres occasionnels, ce n'est pas un problème. Lorsqu'il s'agit de lots de grands nombres (en particulier les grandes adresses mémoire), les frais généraux impliqués ralentissent les choses.
D'où le désir général de rendre les registres, les emplacements de mémoire et le matériel d'adressage de la mémoire de plus en plus "larges" afin de traiter les grands nombres "nativement", de manière à ce que ces nombres puissent être traités avec le nombre minimum d'opérations.
La taille des nombres étant infinie, la taille/adressage des registres/mémoire du processeur est toujours un équilibre entre la taille native des nombres et les coûts liés à la mise en œuvre de largeurs de plus en plus grandes.
36 votes
La question est erronée. Les machines 32 bits peuvent gérer des nombres bien plus grands que 2^32. Elles le font tout le temps, avec 'long' et ainsi de suite. Elles ne peuvent stocker que jusqu'à 2^32 dans un registre, mais le logiciel est écrit pour contourner ce problème. Certains langages modernes n'ont même pas de problème avec la longueur d'un nombre donné.
23 votes
Veuillez garder vos commentaires sur le sujet, polis et pertinents pour les aspects techniques de la question. Près de 50 commentaires de blagues ont déjà dû être supprimés, et nous aimerions éviter de devoir verrouiller le poste. Merci.
6 votes
Cette question a été rédigée d'une manière un peu négligée. Que voulez-vous dire par "écrire" et "afficher" le nombre 1000000000000 ? Lorsque vous avez rédigé la question, vous avez écrit le nombre 1000000000000, et votre navigateur Web l'affiche très bien, je suppose, mais cela ne devrait rien avoir d'étrange pour quiconque a déjà utilisé un ordinateur. La question demande une libre interprétation.
0 votes
Certains langages (comme Python) peuvent stocker des nombres vraiment très grands sous la forme d'un tableau de chiffres. Avec cela, peu importe la taille de votre mot ou registre, vous pouvez avoir autant de chiffres que vous pouvez en stocker en mémoire. C'est 10^2^32 pour les machines 32 bits ou 10^2^64 pour les machines 64 bits !
10 votes
On estime que la conscience humaine contient environ 50 bits (j'ai lu quelque part). La question n'est donc pas "Comment puis-je écrire" mais "Comment puis-je écrire".
10^9
sans que mon PC ne tombe en panne", mais plutôt "Comment puis-je écrire10^(18)
sans que mon cerveau ne s'effondre ?"1 votes
Les ordinateurs 32 bits ne peuvent stocker que des entiers UNSIGNED jusqu'à 2^32 - 1. 2^32 - 1 n'est même pas égal à 2 147 483 647... 300 votes positifs et personne ne s'en est rendu compte ?
0 votes
@KorayTugay Ça, ou tous ceux qui s'en sont rendu compte ont aussi réalisé que ce n'est pas particulièrement important pour la question.
0 votes
Aussi, ce n'est pas un trillion, c'est 4 milliards
0 votes
A titre d'information :
10^12
s'appelleTrillion
aux États-Unis, au Canada anglais, en Australie et dans les pays britanniques modernes.Billion
en Europe, plus anciens, britanniques et canadiens français.