C# преобразовать строку в Uint
Вопрос
Итак, у меня есть строка из 13 символов.
string str = "HELLOWORLDZZZ";
И мне нужно сохранить это как представление ASCII (HEX) в переменной UINT. Как мне это сделать?
Решение
Вы можете использовать Encoding.ASCII
.
GetBytes
Чтобы преобразовать вашу строку в byte
массив с кодированием ASCII (каждый персонаж берет один byte
) Затем позвоните BitConverter.ToUInt32
чтобы преобразовать этот байтовый массив в uint
. Анкет Однако как @Р. Бемроуз отмечается в комментариях, uint
всего 4 byte
S, так что вам нужно сначала сделать некоторое разделение вашего массива.
Другие советы
Посмотри на 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) до 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