Conversion étrange

Résolu
Ziman Messages postés 245 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 26 septembre 2008 - 14 sept. 2006 à 00:46
Ziman Messages postés 245 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 26 septembre 2008 - 14 sept. 2006 à 04:11
Bonjour,

je viens de tomber sur un cas bizarre lol. En fait, je fais ceci un moment :

chaine[x] = 130;
printf ("%d\n", chaine[x]);

pour attribuer à l'octet de la chaine la valeur "é". Donc je lui attribue 130, mais quand je fais le printf, il m'affiche -126 ... Il y a pas moyen qu'il m'affiche 130 ? Donc qu'il garde bien la valeur entrée quoi ?

Merci de vos réponses

Apprendre le VB6

3 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 sept. 2006 à 01:32
Ajoute un unsigned devant ton char:

unsigned char chaine...

car un char signé va de -127 à 126 je crois. 130 équivaut donc à une valeur négative. Un char signé peut aller jusqu'a 255 donc 130 sera bien interprété.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution<!--
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
14 sept. 2006 à 02:50
Oups pardon, c'est un char non signé qui va jusqu'à 255.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution<!--
0
Ziman Messages postés 245 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 26 septembre 2008
14 sept. 2006 à 04:11
Merci beaucoup, j'ai galéré et j'ai été jusque faire 256 + nombre si c'était négatif lol. Ca fonctionnait mais bon ...

Merci pour cette info que j'aurais du savoir :p

Apprendre le VB6
0
Rejoignez-nous