Téléchargement
illégal
Posez votre question Signaler

Unsigned char

choui 36Messages postés 12 juin 2008Date d'inscription 14 octobre 2010Dernière intervention - Dernière réponse le 30 sept. 2008 à 11:20
Bonjour,
comment définir un entier signé ou non signé en langage C? Comment calculer l'équivalent en caractère non signé d'un nombre en base 10?
Lire la suite 

Unsigned char »

5 réponses
Réponse
+4
moins plus
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
bizu53- 30 sept. 2008 à 09:44
À qui t'adresses-tu en disant "tu"?
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
jihelge- 30 sept. 2008 à 11:20
Non, a Choui.
Ajouter un commentaire
Réponse
-2
moins plus
Bonsoir,
unsigned int ou int.
Pour la conversion, tu peux utiliser la fonction sprintf (regarde le manuel pour plus de détails).

Cordialement,
bizu53- 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;
Ajouter un commentaire
Ce document intitulé « unsigned char » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?