如何将数字转换为ASCII字符?

时间:2013-07-18 17:55:19

标签: c# windows function ascii windows-forms-designer

我想创建一个用户输入数字的应用程序,程序会将一个字符扔回给用户。

编辑:反之亦然,将ascii字符更改为数字?

6 个答案:

答案 0 :(得分:43)

您可以使用以下方法之一将数字转换为 ASCII / Unicode / UTF-16 字符:

您可以使用这些方法将指定的32位有符号整数的值转换为其Unicode字符:

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

此外,ASCII.GetString将字节数组中的字节范围解码为字符串:

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

请注意,ASCIIEncoding不提供错误检测。任何大于十六进制0x7F的字节都会被解码为Unicode问号(“?”)。

答案 1 :(得分:5)

编辑:根据请求,我添加了一项检查,以确保输入的值在0到127的ASCII范围内。是否要限制这取决于您。在C#中(我相信.NET一般),char用UTF-16表示,因此任何有效的UTF-16字符值都可以转换为它。但是,系统可能不知道每个Unicode字符应该是什么样的,因此它可能显示不正确。

// 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);
    }
}

答案 2 :(得分:4)

要将ascii转换为数字,只需将char值转换为整数即可。

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

变量值现在将具有97,其对应于该ascii字符的值

(使用此链接作为参考) http://www.asciitable.com/index/asciifull.gif

答案 3 :(得分:3)

你可以简单地施展它。

char c = (char)100;

答案 4 :(得分:1)

C#代表UTF-16编码的字符而不是ASCII。因此,将整数转换为字符对A-Z和a-z没有任何影响。但我正在使用除了字母和数字之外的ASCII代码,这对我来说不起作用,因为系统使用UTF-16代码。因此我浏览了所有UTF-16字符的UTF-16代码。这是模块:

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);
}

答案 5 :(得分:0)

我在谷歌搜索如何将int转换为char,这让我来到这里。但我的问题是将例如6的int转换为'6'的char。 对于像我这样来到这里的人来说,这是怎么做的:

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