Plages de valeur

Fermé
arnaud - 28 sept. 2003 à 18:05
 Bob - 28 sept. 2003 à 19:07
salut,

il y a une chose que je ne comprends pas dans les plages de valeur du C.
Par exemple un int ne peut pas il être superieur à 2147483647 ?
et pour les char c'est les -128 127 que je ne comprends pas, à quoi correspondent ces valeurs ?

si quelqu'un pouvait m'expliquer clairement cela serait sympa !

merci ^_^

1 réponse

Je décide de coder un entier naturel sur 4 bits soit 1111 en binaire ou bien 15 en décimal car 1*2^0+1*2^1+1*2^2+1*2^3 = 15 donc sur 4 bits je suis capable de coder un intervalle de N qui est [0, 15].
Maintenant je décide de m'attaquer aux entiers relatifs sur 4 bits alors je suis obliger de sacrifier un bit pour le signe + ou - donc au mieux j'obtiendrai 2^3 soit 8 valeurs ce qui équivaut à l'intervalle [-8, +7]. Pourquoi +7 et pas +8 car si on tient compte du 0 on a 8 valeurs jusqu'à 7. Par convention on n'utilise pas le bit de poid fort pour le signe mais on prend le complément de la valeur absolue auquel on ajoute 1. Voilà un cours éclair sur le binaire.
0