Ответ 1
Здесь альтернатива, так как вам не нравится приведение в int:
foreach(byte b in System.Text.Encoding.UTF8.GetBytes(str.ToCharArray()))
Console.Write(b.ToString());
Рассмотрим строку:
string str="A C# string";
Что было бы наиболее эффективным способом распечатать значение ASCII каждого символа в str с помощью С#.
Здесь альтернатива, так как вам не нравится приведение в int:
foreach(byte b in System.Text.Encoding.UTF8.GetBytes(str.ToCharArray()))
Console.Write(b.ToString());
Просто выделите каждый символ в int:
for (int i = 0; i < str.length; i++)
Console.Write(((int)str[i]).ToString());
Этот пример может помочь вам. используя простую кастинг, вы можете получить код за символом урду.
string str = "عثمان";
char ch = ' ';
int number = 0;
for (int i = 0; i < str.Length; i++)
{
ch = str[i];
number = (int)ch;
Console.WriteLine(number);
}
Вот еще одна альтернатива. Конечно, это даст вам плохой результат, если вход char не 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);
}