web-dev-qa-db-fra.com

Comment convertir un nombre en un ASCII Personnage?

Je veux créer une application où l'utilisateur entrerait un nombre et le programme renverrait un caractère à l'utilisateur.

Edit: Et si on changeait un caractère ascii en nombre?

18
Cyrax Nguyen

Vous pouvez utiliser l'une de ces méthodes pour convertir un nombre en un caractère ASCII/Unicode/UTF-16:

Vous pouvez utiliser ces méthodes pour convertir la valeur de l'entier signé 32 bits spécifié en son caractère Unicode:

char c = (char)65;
char c = Convert.ToChar(65); 

De plus, ASCII.GetString décode une plage d'octets d'un tableau d'octets en une chaîne:

string s = Encoding.ASCII.GetString(new byte[]{ 65 });

Gardez à l'esprit que, ASCIIEncoding ne fournit pas de détection d'erreur. Tout octet supérieur à 0xadF hexadécimal est décodé en tant que point d'interrogation Unicode ("?").

40
Farhad Jabiyev

Éditer: à la demande, j'ai ajouté une coche pour vérifier que la valeur entrée était comprise dans la plage ASCII de 0 à 127. Vous souhaitez limiter cette option ou non. En C # (et je crois que .NET en général), chars est représenté à l'aide de UTF-16, ainsi toute valeur de caractère UTF-16 valide peut y être convertie. Cependant, il est possible qu'un système ne sache pas à quoi chaque caractère Unicode doit ressembler, de sorte qu'il peut ne pas s'afficher correctement.

// Read a line of input
string input = Console.ReadLine();

int value;
// Try to parse the input into an Int32
if (Int32.TryParse(input, out value)) {
    // Parse was successful
    if (value >= 0 and value < 128) {
        //value entered was within the valid ASCII range
        //cast value to a char and print it
        char c = (char)value;
        Console.WriteLine(c);
    }
}
5
Cemafor

Pour obtenir un nombre ascii, il vous suffit de convertir votre caractère en un entier. 

char ascii = 'a'
int value = (int)ascii

La valeur de la variable aura maintenant 97, ce qui correspond à la valeur de ce caractère ascii

(Utilisez ce lien pour référence) http://www.asciitable.com/index/asciifull.gif

4
StevenTsooo

vous pouvez simplement le lancer.

char c = (char)100;
3
sora0419

C # représente un caractère codé en UTF-16 plutôt qu'en ASCII. Par conséquent, convertir un entier en caractère ne fait aucune différence pour A-Z et a-z. Mais je travaillais avec des codes ASCII en plus des alphabets et des chiffres qui ne fonctionnaient pas pour moi car le système utilise le code UTF-16. J'ai donc parcouru le code UTF-16 pour tous les caractères UTF-16. Voici le module:

void utfchars()
{
 int i, a, b, x;
 ConsoleKeyInfo z;
  do
  {
   a = 0; b = 0; Console.Clear();
    for (i = 1; i <= 10000; i++)
    {
     if (b == 20)
     {
      b = 0;
      a = a + 1;
     }
    Console.SetCursorPosition((a * 15) + 1, b + 1);
    Console.Write("{0} == {1}", i, (char)i);
   b = b+1;
   if (i % 100 == 0)
  {
 Console.Write("\n\t\t\tPress any key to continue {0}", b);
 a = 0; b = 0;
 Console.ReadKey(true); Console.Clear();
 }
}
Console.Write("\n\n\n\n\n\n\n\t\t\tPress any key to Repeat and E to exit");
z = Console.ReadKey();
if (z.KeyChar == 'e' || z.KeyChar == 'E') Environment.Exit(0);
} while (1 == 1);
}
1
Olxi Suresh

J'étais en train de chercher sur Google comment convertir un int en personnage, ça m'a amené ici. Mais ma question était de convertir par exemple int de 6 en caractère de '6' . Pour ceux qui sont venus ici comme moi, voici comment procéder:

int num = 6;
num.ToString().ToCharArray()[0];
0
Rafe