Unsigned char
Fermé
choui
Messages postés
36
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
14 octobre 2010
-
29 sept. 2008 à 19:02
jihelge Messages postés 71 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 4 octobre 2008 - 30 sept. 2008 à 11:20
jihelge Messages postés 71 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 4 octobre 2008 - 30 sept. 2008 à 11:20
A voir également:
- Unsigned char
- Char ai - Guide
- Expecting value: line 1 column 1 (char 0) ✓ - Forum MacOS
- Convertir string en char ✓ - Forum C++
- Char code ascii - Guide
- Convertir char en int java - Forum Programmation
2 réponses
jihelge
Messages postés
71
Date d'inscription
mardi 5 février 2008
Statut
Membre
Dernière intervention
4 octobre 2008
7
30 sept. 2008 à 08:54
30 sept. 2008 à 08:54
Je ne sais pas ce que tu veux faire mais :
Unsigned char représente un nombre pouvant sur 8 bit pouvant varier de 0 à 255
donc en fait si j'écris :
unsigned char toto= 65;
fprintf(stdout,"%c\n",toto);
J'obtiendrai la lettre "A" à l'affichage car toto à pris la valeur du code ASCII de la lettre A, B étant 66 etc..
Si tu as un calcul du type
int b;
b= fonction_bidon_de_calcul();
toto= (unsigned char) b ;
frprintf(stdout,"%i %c\n",b,toto);
Tu obtiendra le code et l'équivalent caractère
Attention aux bornes l'alphabet ASCII est limité et tout ne s'imprime pas ou peut créer des dégats suivant l'environnements, en effet certains code ou séquences de codes correspondent à des événements (notamment sous UNIX ou LINUX) (13=retour chariot, 10=à la ligne, 4=Control D= SIGKILL....).
En recvanche si ton objectif est transformer
int toto=128; //non imprimable code binaire 0111 1111 = x7F
unsigned char chaine[5]={""};//chaine vide
de telle sorte que
chaine à la fin contienne "128"
le mieux c'est
sprintf( chaine ,"%i",toto);
Alors chaine[0] contient "1" valeur 0x31
chaine[1] contient "2" valeur 0x32
chaine[2] contient "8" valeur 0x38
chaine[3] contient "\0" valeur 0 indicateur fin de chaine
Attention au signe et à la longueur de la chaine en fonction de la taille du nombre à représenter
Unsigned char représente un nombre pouvant sur 8 bit pouvant varier de 0 à 255
donc en fait si j'écris :
unsigned char toto= 65;
fprintf(stdout,"%c\n",toto);
J'obtiendrai la lettre "A" à l'affichage car toto à pris la valeur du code ASCII de la lettre A, B étant 66 etc..
Si tu as un calcul du type
int b;
b= fonction_bidon_de_calcul();
toto= (unsigned char) b ;
frprintf(stdout,"%i %c\n",b,toto);
Tu obtiendra le code et l'équivalent caractère
Attention aux bornes l'alphabet ASCII est limité et tout ne s'imprime pas ou peut créer des dégats suivant l'environnements, en effet certains code ou séquences de codes correspondent à des événements (notamment sous UNIX ou LINUX) (13=retour chariot, 10=à la ligne, 4=Control D= SIGKILL....).
En recvanche si ton objectif est transformer
int toto=128; //non imprimable code binaire 0111 1111 = x7F
unsigned char chaine[5]={""};//chaine vide
de telle sorte que
chaine à la fin contienne "128"
le mieux c'est
sprintf( chaine ,"%i",toto);
Alors chaine[0] contient "1" valeur 0x31
chaine[1] contient "2" valeur 0x32
chaine[2] contient "8" valeur 0x38
chaine[3] contient "\0" valeur 0 indicateur fin de chaine
Attention au signe et à la longueur de la chaine en fonction de la taille du nombre à représenter
Marco la baraque
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
328
29 sept. 2008 à 22:35
29 sept. 2008 à 22:35
Bonsoir,
unsigned int ou int.
Pour la conversion, tu peux utiliser la fonction sprintf (regarde le manuel pour plus de détails).
Cordialement,
unsigned int ou int.
Pour la conversion, tu peux utiliser la fonction sprintf (regarde le manuel pour plus de détails).
Cordialement,
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
859
29 sept. 2008 à 22:55
29 sept. 2008 à 22:55
J'ai la flemme de tester ça, je post donc sans même avoir vérifié... mais il me semble qu'un simple cast suffit.
Genre :
int a = -5;
unsigned int b;
b = (unsigned int) a;
Genre :
int a = -5;
unsigned int b;
b = (unsigned int) a;
30 sept. 2008 à 09:44
Si c'est moi, je sais très bien ... un unsigned char c'est entre 0 et 255, alors qu'un char de -127 à 128 (ou -128, 127, jsais jamais) pour des même représentations binaires
30 sept. 2008 à 11:20