pourrait-on m'expliquer pourquoi le type char possède un intervalle de -128 à +127 alors que c'est un type qui ne peut contenir que des lettres et une lettre par variable.
merci
pourrait-on m'expliquer pourquoi le type char possède un intervalle de -128 à +127 alors que c'est un type qui ne peut contenir que des lettres et une lettre par variable.
merci
Le type char représente avant tout un entier codé sur 8 bits. La représentation des caractères est un usage très répandu du type char (par l'intermédiaire du code ASCII), mais ça n'est pas le seul.
Peut tu développé stp parce que pour moi, dans le type char on ne peut mettre que des caracteres comme a, b, c ... et qu'un seul caractere par variable jusqu'ici tout va bien, mais pourquoi avoir un intervalle de -128 + 127 et pourquoi est-il possible de modifier cette plage de 0 à 255 en utilisant unsigned char ?
merci
L'ensemble des valeurs que peut prendre le type char appartient a l'ensemble des entiers relatifs. Le type char peut donc etre signé ou unsigned.
On utilise un nombre pour representer une lettre, ainsi quand ta variable c de type char contient la valeur 61, alors si on utilise la table ascii la variable contiendra 61 mais la correspondance de la table ascii sera A
http://www.tableascii.com/
ps:la table ascii est forcement dans les 0-127![]()
Tout est dans l'interprétation que l'on en fait.
En C, le type char veut dire "entier signé assez grand pour contenir le code d'un caractère". Et comme il est considéré comme signé et que le plus souvent, on code les nombres négatifs en complément à 2, on a droit à la plage de valeur -128 à 127 (1000000 à 01111111). Dans cette interprétation, 11111111 signifie la valeur -1.
Si l'on interprète les bits comme un nombre non-signé à la place, on a alors une plage de valeur allant de 0 à 255. (00000000 à 11111111). Dans cette interprétation, 11111111 signifie la valeur 255. En fait, c'est comme si toutes les combinaisons de bits représentant des valeurs négatives étaient "libres" et utilisées pour coder autre chose.
Heureusement, la plage de valeurs "commune" aux deux interprétations (0 à 127) est codée pareil (00000000 à 01111111), ce qui évite les problèmes de ce côté-ci. En clair, tant que le bit de poids fort est nul, on n'a pas vraiment à faire la différence entre signé et non-signé.
... Et bizarrement, le jeu de caractères ASCII pur se limite à cette plage. Sympa non?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Ca reste flou.
Le type char désigne un objet d'une taille minimale de 8-bit. Si on le considère comme signé (signed char), les valeurs possibles garanties vont de -127 à +127. Si on le considère comme non signé, les valeurs garanties vont de de 0 à 255.
Un char est garanti de pouvoir contenir la valeur de n'importe quel caractère de l'ensemble des caractère exigés par le C.
http://delahaye.emmanuel.free.fr/spip.php?article6
merci medinoc mais pourquoi avoir un intervalle de -128 à +127 alors que ce ne sont pas des chiffres(on oublie le unsigned) lorsque l'on place la valeur du code ascii d'une lettre, l'intervalle on s'en moque.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
tout ce qui nous interesse c'est que le type char puisse juste etre assez grand pour pouvoir placer le code ascii de nos caractere; vous voyer la question que je me pose ?
Partager