質問
だから、私は13文字の文字列を持っています。
string str = "HELLOWORLDZZZ";
そして、これをASCII表現(16進数)としてUINT変数に保存する必要があります。どうすればいいですか?
解決
使用できます Encoding.ASCII
.
GetBytes
文字列をaに変換します byte
ASCIIエンコードを備えた配列(各文字が1つを取得します byte
)。次に、電話してください BitConverter.ToUInt32
そのバイト配列をaに変換します uint
. 。ただし、As @R。ベムローズ コメントに記載されている、a uint
わずか4です byte
s、そのため、最初にアレイのパーティション化を行う必要があります。
他のヒント
見て Convert.ToUInt32(string, int)
. 。例えば:
uint parsed = Convert.ToUInt32(str, 16);
uint.Parse(hexString, System.Globalization.NumberStyles.HexNumber);
私のコメントを参照してください。ただし、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
所属していません StackOverflow