En fait, j'ai (probablement) un problème "simple". Donc, je ne sais pas comment transformer un entier signé en un entier non signé.C: Convertir signé à non signé
Mon code:
signed int entry = 0;
printf("Decimal Number : ");
scanf("%d", &entry);
unsigned int uEntry= (unsigned int) entry;
printf("Unsigned : %d\n", uEntry);
Si j'envoie la valeur non signée à la console (voir ma dernière ligne de code), je reçois toujours un retour entier signé.
Pouvez-vous m'aider?
Merci beaucoup!
Meilleures salutations, pro
Salut Kenny, Merci pour votre réponse. Si je définis le spécificateur% u, j'obtiendrai pour -13 une valeur non signée de 4294967283. Quel est le problème? Merci. – bitsmuggler
Il n'y a pas de problème. C'est la représentation non signée des bits de votre variable. –
@pro: Lorsque votre spécificateur de format ne correspond pas au type de la valeur que vous imprimez, le comportement n'est pas défini et les résultats sont dénués de sens. C'est à dire. lorsque vous imprimez '-13' avec'% u', les résultats sont dénués de sens. Ainsi que votre tentative originale d'imprimer une valeur non signée avec '% d'. Utilisez toujours le bon spécificateur de format, si vous voulez que votre sortie ait un sens: '% u' pour' unsigned int', '% d' pour' signed int'. – AnT