Transtypage en c#

aya2103 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   -  
Nico# Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   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 323 Date d'inscription   Statut Membre Dernière intervention   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 38 Date d'inscription   Statut Membre Dernière intervention   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