文字列を考えます:
string str="A C# string";
C#を使用してstrの各文字のASCII値を印刷する最も効率的な方法は何でしょうか。
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);
}
別の選択肢があります。入力文字が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);
}