Chcę utworzyć aplikację, w której użytkownik wprowadziłby numer, a program zwróci użytkownikowi znak.Jak konwertować liczbę znaków na znaki ASCII?
Edycja: Jak o vice versa, zmieniając znak ASCII w liczbę?
Chcę utworzyć aplikację, w której użytkownik wprowadziłby numer, a program zwróci użytkownikowi znak.Jak konwertować liczbę znaków na znaki ASCII?
Edycja: Jak o vice versa, zmieniając znak ASCII w liczbę?
można użyć jednej z następujących metod konwersji numeru do ASCII/Unicode/UTF-16 postać:
można wykorzystywać te metody konwersji wartość określonego 32-bitową liczbę całkowitą jego Unicode charakter:
char c = (char)65;
char c = Convert.ToChar(65);
również ASCII.GetString
dekoduje zakres bajtów z tablicy bajtów na ciąg znaków:
string s = Encoding.ASCII.GetString(new byte[]{ 65 });
Należy pamiętać, że ASCIIEncoding
nie zapewnia wykrywania błędów. Każdy bajt większy niż szesnastkowy 0x7F jest dekodowany jako znak zapytania Unicode ("?").
można go po prostu rzucić.
char c = (char)100;
To nie działa char c = (char) 48. c == 0 nie 48 – nykwil
Edit: Na życzenie, dodałem upewnij się wartość wprowadzana była w zakresie ASCII od 0 do 127. Czy chcesz ograniczyć to do ciebie. W języku C# (i uważam, że .NET w ogóle), char
s są reprezentowane za pomocą UTF-16, więc każda ważna wartość znaku UTF-16 może być w nim wrzucona. Jednak możliwe jest, że system nie wie, jak powinien wyglądać każdy znak Unicode, aby mógł się wyświetlać niepoprawnie.
// 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);
}
}
To działa, ale musisz ustawić pewne minimalne/maksymalne granice dla wartości całkowitej.Nie wszystkie liczby są konwertowane na wyświetlane znaki ASCII. – MadHenchbot
Co powiecie na konwersję znaków ASCII na liczbę? –
@CyraxNguyen: Możesz po prostu rzucić w drugą stronę. 'int i = (int) 'a';' Spowoduje to umieszczenie wartości ascii litery "a" w 'i'. – Cemafor
Aby uzyskać ascii na liczbę, wystarczy rzucić wartość char w liczbę całkowitą.
char ascii = 'a'
int value = (int)ascii
Zmienna wartość mają teraz 97, która odpowiada wartości tej ASCII
(Użyj tego linku odsyłającego) http://www.asciitable.com/index/asciifull.gif
C# reprezentuje znak w UTF-16 kodowania zamiast ASCII. Dlatego przekształcenie liczby całkowitej na znak nie powoduje żadnej różnicy dla A-Z i a-z. Ale pracowałem z kodami ASCII oprócz alfabetów i liczb, które nie działały dla mnie, ponieważ system używa kodu UTF-16. Dlatego przeglądałem kod UTF-16 dla wszystkich znaków UTF-16. Oto moduł:
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);
}
Szukałem informacji o tym, jak przekonwertować int na char, który mnie tutaj. Ale moim pytaniem było przekonwertowanie na przykład int z 6 na char z "6". Dla tych, którzy przyszli tutaj jak ja, to jak to zrobić:
int num = 6;
num.ToString().ToCharArray()[0];
Albo po prostu 'num + '0'' –
Proszę nie edytować pytanie po istnieją odpowiedzi, aby to nowe pytanie (w tym przypadku odwrotnego). Otwórz nowe pytanie. –