c# 数据转化

来源:百度知道 编辑:UC知道 时间:2024/06/20 09:17:37
byte[] inData=new byte [10];
k=1
for (i = 0; i <= 9; i++)
{
pwData[i] =Convert .ToByte (Convert .ToInt32 (("0x" + pwData[i].ToString () )) ^ 56);
k += 2;
}

我想把pswData 的值变为 当前的十进制值前面再加一个0x变成新的一个十六进制 再 异或56 这样转化怎么老是错误啊
[Input string was not in a correct format]
比如 123 变成 十六进制 0x123 ^ 56

int a = 10;
a=int.Parse(a.ToString(),System.Globalization.NumberStyles.AllowHexSpecifier);

这样,a就变成和10进制有一样数字的16进制了

关于System.Globalization.NumberStyles.AllowHexSpecifier:
AllowHexSpecifier
System.Globalization.NumberStyles 的成员

摘要:
指示数值字符串表示一个十六进制值。有效的十六进制值包括数字 0-9 和十六进制数字 A-F 与 a-f。十六进制值的左侧可以用零填充。使用此样式分析的字符串不允许以“0x”为前缀。

试一下int.Parse()代替Convert .ToInt32()

pwData[i].ToString ("x") ;//转换为16进制数