wake-up-neo.com

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