質問

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

string str = "HELLOWORLDZZZ";

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

役に立ちましたか?

解決

使用できます Encoding.ASCII.GetBytes 文字列をaに変換します byte ASCIIエンコードを備えた配列(各文字が1つを取得します byte)。次に、電話してください BitConverter.ToUInt32 そのバイト配列をaに変換します uint. 。ただし、As @R。ベムローズ コメントに記載されている、a uint わずか4です bytes、そのため、最初にアレイのパーティション化を行う必要があります。

他のヒント

見て Convert.ToUInt32(string, int). 。例えば:

uint parsed = Convert.ToUInt32(str, 16);
uint.Parse(hexString, System.Globalization.NumberStyles.HexNumber);

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

Convert.ToUInt32(yourHexNumber, 16);

ドキュメントを参照してください ここ.

私のコメントを参照してください。ただし、ASCII文字列をHEXに変換したい場合は、次のようなものです。

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;
}

これはあなたを変換します string (ベース16表現付き)aに uint.

uint val = Convert.ToUInt32(str, 16);

今、私はあなたがbdukesの答えに関するコメントであなたが欲しいものを理解していると思います。

あなたが望むなら hex 文字列内の各文字のコードは、linqを使用して取得できます。

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

hex 文字列になります 41424344

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top