Transtypage en c#

Fermé
aya2103 Messages postés 38 Date d'inscription vendredi 13 août 2010 Statut Membre Dernière intervention 16 septembre 2010 - 22 août 2010 à 16:42
Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 - 23 août 2010 à 12:04
Bonjour,

SVP pourqoui qd je remplace (int)'0' par 0 , ca medonne que a=56 est pa 8

  int a;
            char b='8';
            
            a = (int)b - (int)'0';
            Console.WriteLine(a);




3 réponses

Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
23 août 2010 à 12:04
Car en castant un char en int tu recupere la valeur ASCII de ton caractere or le nombre huit en ASCII et egale a 56 pour preuve essaye de tapper ALT et meme temps tu tape 56 quand tu va relache alt tu va voir le nombre 8 s'afficher.

A l'inverse le nombre huit correspond a un espace blanc pour preuve fais la meme manip qu'avant mais avec 8 a la place de 56

Voila en esperant t'avoir aider
1
Nico# Messages postés 323 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 28 août 2013 102
22 août 2010 à 18:17
Salut,

Tout simplement parsque (int)'8' est egale a 56;

Car ta conversion d'un char en int tu donne la position decimal de ton Char
0
aya2103 Messages postés 38 Date d'inscription vendredi 13 août 2010 Statut Membre Dernière intervention 16 septembre 2010 2
23 août 2010 à 10:38
bonjour,

Excusez moi Nico c'est pas assez clair pour moi.

est ce que vous pouvez me dire pourquoi ce programme(a = (int)b - (int)'0';) donne que a =8
alors que( a = (int)b - 0;) donne a=56

merci
0