当前位置: 首页 > 编程语言 > C#

将包含以“0x”开头的十六进制值的字符串转换为整数或长整型分享

时间:2023-04-10 10:39:23 C#

将包含以“0x”开头的十六进制值的字符串转换为整数或长整数如何转换字符串值“0x310530”在C#中转换为整数值?我试过int.TryParse(甚至int.TryParse和System.Globalization.NumberStyles.Any),但它不起作用。更新:似乎Convert.ToInt64或Convert.ToInt32无需删除尾随“0x”即可工作:longhwnd=Convert.ToInt64("0x310530",16);Convert.ToInt64Method(String,Int32)的文档说:“如果fromBase为16,则可以在值参数指定的数字前加上“0x”或“0X”。”但是,我更喜欢像TryParse这样不会抛出异常的方法。intvalue=(int)newSystem.ComponentModel.Int32Converter().ConvertFromString("0x310530");来自MSDN:NumberStyles.AllowHexSpecifier表示数字字符串表示十六进制值。有效的十六进制值包括数字0-9和十六进制数字AF和af。使用此样式解析的字符串不能以“0x”或“&h”为前缀。所以你必须先去掉0x前缀:strings="0x310530";整数结果;if(s!=null&&s.StartsWith("0x")&&int.TryParse(s.Substring(2),NumberStyles.AllowHexSpecifier,null,outresult)){//result==3212592}如果删除前导0x,你可以使用int.Parseinta=int.Parse("1310530",NumberStyles.AllowHexSpecifier);正如CristiDiaconescu指出的那样,直接来自SHanselman,但我已经包含了主要来源:publicstaticTGetTfromString(stringmystring){varfoo=TypeDescriptor.GetConverter(typeof(T));返回(T)(foo.ConvertFromInvariantString(mystring));整篇文章值得一看!以上就是C#学习教程:将包含以“0x”开头的十六进制值的字符串转换为整数或长整数。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。—本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢