需要将string / char转换为ascii值

时间:2010-04-24 02:30:23

标签: c# asp.net visual-studio winforms

我需要将char转换为十六进制值。请参阅Ascii表,但我列出了几个例子:

  • char 1 = 31 2 = 32 3 = 33 4 = 34 5 = 35 A = 41 a = 61等

因此string str =“12345”; 需要获得转换后的str =“3132333435”

4 个答案:

答案 0 :(得分:8)

我认为这就是你所需要的:

string finalValue;
byte[] ascii = Encoding.ASCII.GetBytes(yourString);
foreach (Byte b in ascii) 
{
  finalValue += b.ToString("X");
}

有关MSDN的更多信息:http://msdn.microsoft.com/en-us/library/system.text.encoding.ascii.aspx

编辑:到十六进制:

string finalValue;
int value;
foreach (char c in myString)
{
  value = Convert.ToInt32(c);
  finalValue += value.ToString("X"); 
  // or finalValue = String.Format("{0}{1:X}", finalValue, value);
}
// use finalValue

答案 1 :(得分:3)

string.Join("", from c in "12345" select ((int)c).ToString("X"));

答案 2 :(得分:2)

string s = "abc123";
foreach(char c in s)
{
   Response.Write((int)c + ",");
}

答案 3 :(得分:1)

将它放在一行中,更具可读性(imo)

var result = "12345".Aggregate("", (res, c) => res + ((byte)c).ToString("X"));

这会返回"3132333435",正如您所要求的那样:)