C# 16进制转10进制 输入字符串的格式不正确

stringtext=txt_encrypted.Text;char[]delimiters=newchar[]{''};string[]cip=text.Split(d... string text = txt_encrypted.Text;
char[] delimiters = new char[] { ' ' };
string[] cip = text.Split(delimiters);

string xxx = "";
foreach (string x in cip)
{
int s = int.Parse(x.ToString(),
System.Globalization.NumberStyles.AllowHexSpecifier);
xxx += s.ToString() + " ";
}
MessageBox.Show(xxx);

txt_encrypted.Text 里面我输入的是 16进制的 码, 比如:
"A8B 412 887 A8B 412 ";空格隔开的~~

系统提示错误,输入字符串的格式不正确!!!
展开
 我来答
百度网友bfea2bf17
2009-04-23
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
楼上回答不对 帮助文档中明确指出System.Globalization.NumberStyles.AllowHexSpecifier 指示数值字符串表示一个十六进制值。有效的十六进制值包括数字 0-9 和十六进制数字 A-F 与 a-f。十六进制值的左侧可以用零填充。使用此样式分析的字符串不允许以“0x”为前缀。

你的int.Parse( , )?????没怎么看懂,应该是Int16.Parse( , )吧
应该是你的string x中有问题,可能是有的x什么东西都没有就一个空格符,
既然是在测试,那么将每个x打印出来。
foreach (string x in cip)
{
MessageBox.Show(x);
string y=x.Trim();
if(y.Equals(String.Empty))
{
continue;
}
int s = Int16.Parse(y.ToString(),
System.Globalization.NumberStyles.AllowHexSpecifier);
xxx += s.ToString() + " ";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stalling240
2009-04-23 · TA获得超过633个赞
知道答主
回答量:156
采纳率:0%
帮助的人:0
展开全部
十六进制应该以“0x”开头的,具体到你的问题上就是"A8B 412 887 A8B 412 "应该变成"0xA8B 0x412 0x887 0xA8B 0x412 "就对了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Foxcoming
2009-04-23 · TA获得超过692个赞
知道小有建树答主
回答量:718
采纳率:0%
帮助的人:820万
展开全部
int.Parse (x , NumberStyles.HexNumber)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SSS236266553
2009-04-23 · TA获得超过808个赞
知道小有建树答主
回答量:2376
采纳率:0%
帮助的人:462万
展开全部
没怎么看懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dragon2snow
2009-04-23 · TA获得超过1099个赞
知道小有建树答主
回答量:1150
采纳率:0%
帮助的人:1138万
展开全部
你多了个空格,你最后面的空格去掉,就OK了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式