Combien de nombres pouvez-vous représenter avec 2 octets?


Meilleure réponse

65536.

Je remarque que de nombreuses réponses disent des choses comme « vous pouvez représenter nombres de 0 à 65535 ”, mais cest vraiment arbitraire. Vous pouvez également représenter tous les nombres de -5 à 65530 ou tous les nombres pairs de 2 à 131072, ou tous les nombres 1, 1/2, 1/3,…, 1/65536. Mais la question est de savoir combien de nombres distincts peuvent être représentés par deux octets?

Si deux octets sont utilisés pour représenter des nombres, cela signifie que nous définissons une fonction mappant les 65536 valeurs distinctes possibles que ces deux octets peuvent prendre, aux nombres que ces valeurs représentent.

Si cette fonction est injective, alors limage de la fonction est de la même taille que son domaine, elle contiendra donc 65536 nombres distincts pouvant être représentés. Si la fonction est pas injective (plusieurs valeurs des deux octets correspondent au même nombre), alors son image est plus petite que son domaine, donc un tel schéma représentent moins de 65536 nombres distincts.

(Un scénario pratique dans lequel cela pourrait se produire est si un bit est utilisé comme bit de signe: dans ce cas, il y a souvent deux représentations différentes du nombre 0, un avec le bit de signe défini, et un avec le bit de signe clear.)

Réponse

Un octet est un ensemble de 8 bits. Un bit peut être 1 ou 0. Un octet peut être, par exemple:

11110000

Le nom du système numérique est binaire. Vous pouvez convertir nimporte où un nombre binaire en décimal en utilisant cette formule:

de droite à gauche:

(valeur du premier chiffre) * 2 ^ 0 + (valeur du deuxième chiffre) * 2 ^ 1 + (valeur du troisième chiffre) * 2 ^ 2 +…

La longueur dun octet est 2 ^ 8 = 256, de 0 à 255.

Mais, 2 octets ne sont pas 512, car la conversion comprend plus de chiffres. Pour 2 octets, nous avons 2 ^ 16 = 2 ^ 8 * 2 ^ 8 = 256 * 256 = 65536

La valeur maximale est la longueur – 1. La valeur maximale est donc 65535!

Désolé pour mon mauvais anglais 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *