Transtypage en c#

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

  1. 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
    1. 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
      1. 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