将字符串元素转换为字节

时间:2013-11-01 15:36:06

标签: 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
 data[0] = 102

4 个答案:

答案 0 :(得分:4)

ASCII.GetBytes返回字符的ASCII码。它会很乐意接受字符串"z{}"

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

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

val现在是31。

答案 1 :(得分:2)

小写字母f是102.大写字母F是70.请检查http://www.asciitable.com

当你说你期待15岁时,我的猜测是你在十六进制列中看到了F ......

答案 2 :(得分:2)

你是否期待15,因为你看过像asciitable.com这样的东西,看到HEX值'F'的十六进制十进制值是15?

'f'的十进制值是102(它在链接页面的第四列的一部分)。

答案 3 :(得分:0)

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