Finns det någon inbyggd funktion i .net för det eller får man skapa en själv?
string2hex och viceversa?
3 svar · 385 visningar · startad av Jesper T
Använder denna, som jag fick av någon jag inte kommer på vem det var.
#region StringToHex
public static string StringToHex(string input)
{
StringBuilder sb = new StringBuilder();
byte[] inputBytes = Encoding.UTF8.GetBytes(input);
foreach(byte b in inputBytes)
{
sb.Append(string.Format("{0:x2}", b));
}
return sb.ToString();
}
#endregion
#region HexToString
private static int ParseHexDigit(char c)
{
if(c >= '0' && c <= '9')
return c-'0';
if(c >= 'a' && c <= 'f')
return c-'a'+10;
if(c >= 'A' && c <= 'F')
return c-'A'+10;
throw new ArgumentException("Invalid hex character");
}
public static string HexToString(string hex)
{
char[] result = new char[hex.Length/2];
int hexIndex = 0;
for (int i=0; i < result.Length; i++)
result[i] = (char)(ParseHexDigit(hex[hexIndex++])*16 + ParseHexDigit(hex[hexIndex++]));
return new string(result);
}
#endregion
Tack, skall kolla på det.
Använd gärna de inbyggda funktionerna för själva konverteringsbiten (det behövs fortfarande lite kod för att kunna hantera hela strängar, precis som Dinos kod visar)
//Från hex till int
int a=int.Parse("a1",System.Globalization.NumberStyles.HexNumber);
//och tillbaka
string b=a.ToString("X")