español - windows forms c# tutorial
Cómo convertir un número a un personaje ASCII? (6)
Quiero crear una aplicación donde el usuario ingrese un número y el programa devolverá un carácter al usuario.
Editar: ¿Qué tal viceversa, cambiando un personaje Ascii en número?
Estaba buscando en Google sobre cómo convertir un int a char, eso me trajo aquí. Pero mi pregunta era convertir, por ejemplo, int de 6 a char de ''6''. Para aquellos que vinieron aquí como yo, esta es la forma de hacerlo:
int num = 6;
num.ToString().ToCharArray()[0];
simplemente puedes lanzarlo.
char c = (char)100;
Editar: A pedido, agregué un cheque para asegurarme de que el valor ingresado estuviera dentro del rango ASCII de 0 a 127. Si usted quiere limitar esto, depende de usted. En C # (y creo que .NET en general), los caracteres se representan con UTF-16, por lo que cualquier valor de carácter UTF-16 válido podría incluirse en él. Sin embargo, es posible que un sistema no sepa a qué se debe parecer cada carácter Unicode, por lo que puede aparecer incorrectamente.
// 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);
}
}
Para obtener ascii a un número, simplemente debes convertir el valor de tu char en un número entero.
char ascii = ''a''
int value = (int)ascii
El valor de la variable ahora tendrá 97 que corresponde al valor de ese carácter ascii
(Utilice este enlace como referencia) http://www.asciitable.com/index/asciifull.gif
Puede usar uno de estos métodos para convertir el número a un carácter ASCII / Unicode / UTF-16 :
Puede utilizar estos métodos para convertir el valor del entero de 32 bits con signo especificado en su carácter Unicode:
char c = (char)65;
char c = Convert.ToChar(65);
Además, ASCII.GetString
decodifica un rango de bytes de una matriz de bytes en una cadena:
string s = Encoding.ASCII.GetString(new byte[]{ 65 });
Tenga en cuenta que, ASCIIEncoding
no proporciona detección de errores. Cualquier byte mayor que hexadecimal 0x7F se decodifica como el signo de interrogación Unicode ("?").
C # representa un carácter en codificación UTF-16 en lugar de ASCII. Por lo tanto, convertir un número entero en carácter no hace ninguna diferencia para AZ y az. Pero estaba trabajando con Códigos ASCII además de alfabetos y números que no me funcionaron porque el sistema usa el código UTF-16. Por lo tanto, busqué el código UTF-16 para todos los caracteres UTF-16. Aquí está el módulo:
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);
}