it-swarm.com.de

So konvertieren Sie eine Zahl in eine ASCII Charakter?

Ich möchte eine Anwendung erstellen, bei der der Benutzer eine Nummer eingibt und das Programm dem Benutzer einen Buchstaben zurückschickt.

Bearbeiten: Wie wäre es umgekehrt, ein ASCII-Zeichen in eine Zahl umzuwandeln?

18
Cyrax Nguyen

Sie können eine dieser Methoden verwenden, um number in ein Zeichen ASCII/Unicode/UTF-16 zu konvertieren:

Sie können diese Methoden verwenden, um den Wert der angegebenen 32-Bit-Ganzzahl mit Vorzeichen in das Unicode-Zeichen zu konvertieren:

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

ASCII.GetString dekodiert außerdem einen Bytebereich aus einem Byte-Array in einen String:

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

Beachten Sie, dass ASCIIEncoding keine Fehlererkennung bietet. Jedes Byte größer als Hexadezimal 0x7F wird als Unicode-Fragezeichen ("?") Dekodiert.

40
Farhad Jabiyev

Bearbeiten: Auf Wunsch fügte ich eine Überprüfung hinzu, um zu überprüfen, ob der eingegebene Wert im Bereich ASCII von 0 bis 127 lag. In c # (und ich glaube .NET im Allgemeinen) werden chars mit UTF-16 dargestellt, sodass jeder gültige UTF-16-Zeichenwert in ihn umgewandelt werden kann. Es ist jedoch möglich, dass ein System nicht weiß, wie jedes Unicode-Zeichen aussehen soll, sodass es falsch angezeigt wird.

// 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

Um eine ASCII-Zahl zu erhalten, würden Sie Ihren char-Wert einfach in eine ganze Zahl umwandeln. 

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

Der Variablenwert hat jetzt 97, was dem Wert dieses ASCII-Zeichens entspricht

(Verwenden Sie diesen Link als Referenz) http://www.asciitable.com/index/asciifull.gif

4
StevenTsooo

sie können es einfach werfen.

char c = (char)100;
3
sora0419

C # steht für ein Zeichen in UTF-16-Codierung anstelle von ASCII. Daher macht die Umwandlung einer Ganzzahl in ein Zeichen keinen Unterschied für A-Z und a-z. Aber ich arbeitete mit ASCII - Codes neben Alphabeten und Nummern, die für mich nicht funktionierten, da das System UTF-16-Code verwendet. Deshalb habe ich den UTF-16-Code nach allen UTF-16-Zeichen durchsucht. Hier ist das Modul:

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

Ich habe gegoogelt, wie man einen Int in einen Char umwandelt, der mich hierher gebracht hat. Aber meine Frage war, zum Beispiel int von 6 in char von '6' umzuwandeln.

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