C# 将字符串元素转换为字节

C# 将字符串元素转换为字节,c#,string,byte,C#,String,Byte,我正在尝试将字符串转换为字节数组。当我查看字节数组的各个元素时,会得到意想不到的结果。 例如,当我查看第一个元素时,它是“F”,我希望它被转换为15,但是我得到了102。这里有错误吗 Console.WriteLine("string[0] = " + string[0]); Byte[] data = Encoding.ASCII.GetBytes(string); Console.WriteLine("data[0] = " + data[0]); string[0] = f d

我正在尝试将字符串转换为字节数组。当我查看字节数组的各个元素时,会得到意想不到的结果。 例如,当我查看第一个元素时,它是“F”,我希望它被转换为15,但是我得到了102。这里有错误吗

 Console.WriteLine("string[0] = " + string[0]);
 Byte[] data = Encoding.ASCII.GetBytes(string);
 Console.WriteLine("data[0] = " + data[0]);

 string[0] = f
 data[0] = 102

ASCII.GetBytes
返回字符的ASCII代码。它很乐意接受一个字符串
“z{}”

我猜您想将十六进制字符串转换为整数值。为此,需要将
NumberStyles
参数设置为
NumberStyles.HexNumber

string s = "1F";
int val = Int32.Parse(s, System.Globalization.NumberStyles.HexNumber);

val
现在是31。

小写的f是102。大写字母F为70。请查收


当你说你期望的是15,我猜你在十六进制列中看到了F…

你期望的是15,因为你看过asciitable.com之类的东西,看到十六进制值“F”的十六进制十进制值是15


“f”的十进制值是102(在链接页面的第四列中向下一部分)。

您的期望是错误的,您的代码工作正常,小写“f”的十进制值是102。

您是如何使用名为
string
的变量的?您为什么期望它是15?如果我有什么期望的话。另外,请发布一个完整的可编译的问题示例,现在您的代码甚至无法编译。编辑:谢谢Rik,102是
f
,我选中了
f
。仅供参考,102是小写字母“f”的ascii码,你为什么期望15?
f
的ASCII码是102。顺便说一句,注意Unicode。C#字符串是UTF16,最多可以占用两个字节。谢谢,这正是我需要的。有没有一种方法可以把它也用在chars上?到目前为止,我一直在尝试。您可以使用
.ToString()
方法将字符转换为字符串。然后你可以解析它。或者对这16个值使用
开关
(猜测它是“0”到“F”)。