How To Convert A Number To an ASCII Character?

后端 未结 6 1143
礼貌的吻别
礼貌的吻别 2020-12-17 09:45

I want to create an application where user would input a number and the program will throw back a character to the user.

Edit: How about vice versa, changing a ascii

相关标签:
6条回答
  • 2020-12-17 10:02

    To get ascii to a number, you would just cast your char value into an integer.

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

    Variable value will now have 97 which corresponds to the value of that ascii character

    (Use this link for reference) http://www.asciitable.com/index/asciifull.gif

    0 讨论(0)
  • 2020-12-17 10:09

    you can simply cast it.

    char c = (char)100;
    
    0 讨论(0)
  • 2020-12-17 10:10

    C# represents a character in UTF-16 coding rather than ASCII. Therefore converting a integer to character do not make any difference for A-Z and a-z. But I was working with ASCII Codes besides alphabets and number which did not work for me as system uses UTF-16 code. Therefore I browsed UTF-16 code for all UTF-16 character. Here is the module :

    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);
    }
    
    0 讨论(0)
  • 2020-12-17 10:12

    You can use one of these methods to convert number to an ASCII / Unicode / UTF-16 character:

    You can use these methods convert the value of the specified 32-bit signed integer to its Unicode character:

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

    Also, ASCII.GetString decodes a range of bytes from a byte array into a string:

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

    Keep in mind that, ASCIIEncoding does not provide error detection. Any byte greater than hexadecimal 0x7F is decoded as the Unicode question mark ("?").

    0 讨论(0)
  • 2020-12-17 10:17

    I was googling about how to convert an int to char, that got me here. But my question was to convert for example int of 6 to char of '6'. For those who came here like me, this is how to do it:

    int num = 6;
    num.ToString().ToCharArray()[0];
    
    0 讨论(0)
  • 2020-12-17 10:21

    Edit: By request, I added a check to make sure the value entered was within the ASCII range of 0 to 127. Whether you want to limit this is up to you. In C# (and I believe .NET in general), chars are represented using UTF-16, so any valid UTF-16 character value could be cast into it. However, it is possible a system does not know what every Unicode character should look like so it may show up incorrectly.

    // 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);
        }
    }
    
    0 讨论(0)
提交回复
热议问题