Conversion étrange

Résolu
Messages postés
245
Date d'inscription
dimanche 27 avril 2003
Statut
Membre
Dernière intervention
26 septembre 2008
-
Messages postés
245
Date d'inscription
dimanche 27 avril 2003
Statut
Membre
Dernière intervention
26 septembre 2008
-
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

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
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<!--
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
Oups pardon, c'est un char non signé qui va jusqu'à 255.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution<!--
Messages postés
245
Date d'inscription
dimanche 27 avril 2003
Statut
Membre
Dernière intervention
26 septembre 2008

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