Получение значения ASCII символа в строке C # - PullRequest
20 голосов
/ 15 февраля 2011

Рассмотрим строку:

string str="A C# string";

Какой самый эффективный способ распечатать значение ASCII каждого символа в str с использованием C #.

Ответы [ 4 ]

23 голосов
/ 15 февраля 2011

Просто приведите каждого персонажа к целому:

for (int i = 0; i < str.length; i++)  
  Console.Write(((int)str[i]).ToString());
11 голосов
/ 15 февраля 2011

Вот альтернатива, так как вам не нравится приведение к int:

foreach(byte b in System.Text.Encoding.UTF8.GetBytes(str.ToCharArray()))
    Console.Write(b.ToString());
4 голосов
/ 26 февраля 2016

Этот пример может вам помочь. используя простое приведение, вы можете получить код за символом урду.

string str = "عثمان";
        char ch = ' ';
        int number = 0;
        for (int i = 0; i < str.Length; i++)
        {
            ch = str[i];
            number = (int)ch;
            Console.WriteLine(number);
        }
0 голосов
/ 31 июля 2017

Вот еще одна альтернатива. Конечно, это даст вам плохой результат, если входной символ не ASCII. Я не проверял это, но я думаю это было бы довольно быстро:

[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static int GetAsciiVal(string s, int index) {
    return GetAsciiVal(s[index]);
}

[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static int GetAsciiVal(char c) {
    return unchecked(c & 0xFF);
}
...