6

だから、私は13文字の文字列を持っています。

string str = "HELLOWORLDZZZ";

これを ASCII 表現 (16 進数) として uint 変数に格納する必要があります。どうすればいいですか?

4

6 に答える 6

12

を使用して、文字列を ASCII エンコーディングの配列に変換できます (各文字は 1 つを取ります)。次に、そのバイト配列を に変換するために呼び出します。ただし、@R. Bemroseはコメントで、aはわずか 4秒であるため、最初に配列のパーティション分割を行う必要があると述べています。Encoding.ASCII.GetBytesbytebyteBitConverter.ToUInt32uintuintbyte

于 2010-11-16T21:14:02.947 に答える
2

これはあなたが望む方法だと思います

Convert.ToUInt32(yourHexNumber, 16);

こちらのドキュメントを参照してください。

于 2010-11-16T21:06:51.187 に答える
1
uint.Parse(hexString, System.Globalization.NumberStyles.HexNumber);
于 2010-11-16T21:05:11.563 に答える
1

私のコメントを参照してください。ただし、ASCII 文字列を 16 進数に変換するだけの場合は、次のように思われます。

public string HexIt(string yourString)
{
    string hex = "";
    foreach (char c in yourString)
    {
        int tmp = c;
        hex += String.Format("{0:x2}", (uint)System.Convert.ToUInt32(tmp.ToString()));
    }
    return hex;
}
于 2010-11-16T21:11:21.670 に答える
0

stringこれにより、(Base 16 表現で)が に変換されますuint

uint val = Convert.ToUInt32(str, 16);
于 2010-11-16T21:05:43.137 に答える
0

これで、bdukes の回答に対するコメントであなたが何を望んでいるのか理解できたと思います。

文字列内の各文字のコードが必要な場合はhex、LINQ を使用して取得できます。

var str = "ABCD";
var hex = str.Select(c => ((int)c).ToString("X"))
    .Aggregate(String.Empty, (x, y) => x + y);

hex文字列になります41424344

于 2010-11-16T21:17:32.870 に答える