Transtypage en c#

aya2103 Messages postés 49 Statut Membre -  
Nico# Messages postés 338 Statut Membre -
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 338 Statut Membre 102
 
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 338 Statut Membre 102
 
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 49 Statut Membre 2
 
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