将十六进制字符串转换为整数

时间:2014-10-17 11:25:39

标签: c# hex

int value = Convert.ToInt32('o');
Byte[]  b =  new Byte[] { ( byte)value };
File.WriteAllBytes(Default.ProjectsPath , b);

当我打开文件时显示o,我想将字节值写入文件?

3 个答案:

答案 0 :(得分:2)

删除0x,然后转换:

int i = Convert.ToInt32("0xFE".Substring(2), 16);

答案 1 :(得分:0)

Convert.ToInt16(string)将无法转换以' 0x'开头的字符串,即使它是基数为16的正确表示法。如果您想使用您的解决方案,则需要删除" 0x"从字符串转换。取代

string s=String.Format("0x{0:X}", value);

string s=String.Format("{0:x}", value);

或者您可以使用Alex K的想法并替换

int x=Convert.ToInt16(s);

int x=Convert.ToInt16(s.Substring(2));

答案 2 :(得分:0)

如果您是第一个产生字符串的人,那么就像 Alex Barac 建议的那样,不要放置一个0x前缀...(为什么会产生你不需要的问题)

如果你必须有前缀,请使用它...如果前缀是' 0x'使用
int i = Convert.ToInt32("0xFE".Substring(2), 16); Alex K。建议

如果不是' 0x',那么它可能是一个Base10号码:
int i = Convert.ToInt32("342", 10);