关于C#:如何将十六进制值解析为uint?

关于C#:如何将十六进制值解析为uint?

How to parse hex values into a uint?

1
2
3
4
5
uint color;
bool parsedhex = uint.TryParse(TextBox1.Text, out color);
//where Text is of the form 0xFF0000
if(parsedhex)
   //...

不起作用。我在做什么错?


尝试

1
Convert.ToUInt32(hex, 16)  //Using ToUInt32 not ToUInt64, as per OP comment

您可以使用重载的TryParse(),该重载将NumberStyle参数添加到TryParse调用中,该调用提供对十六进制值的解析。使用NumberStyles.HexNumber允许您将字符串作为十六进制数字传递。

注意:NumberStyles.HexNumber的问题在于它不支持解析带有前缀的值(即0x&H#),因此您必须先将其剥离解析值。

基本上,您会这样做:

1
2
3
4
5
6
7
8
9
10
11
12
13
uint color;
var hex = TextBox1.Text;

if (hex.StartsWith("0x", StringComparison.CurrentCultureIgnoreCase) ||
    hex.StartsWith("&H", StringComparison.CurrentCultureIgnoreCase))
{
    hex = hex.Substring(2);
}

bool parsedSuccessfully = uint.TryParse(hex,
        NumberStyles.HexNumber,
        CultureInfo.CurrentCulture,
        out color);

有关如何使用NumberStyles枚举的示例,请参阅本文:http://msdn.microsoft.com/zh-cn/library/zf50za27.aspx


或者像

1
2
3
4
5
string hexNum ="0xFFFF";
string hexNumWithoutPrefix = hexNum.Substring(2);

uint i;
bool success = uint.TryParse(hexNumWithoutPrefix, System.Globalization.NumberStyles.HexNumber, null, out i);

这是一个try-parse样式函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    private static bool TryParseHex(string hex, out UInt32 result)
    {
        result = 0;

        if (hex == null)
        {
            return false;
        }

        try
        {
            result = Convert.ToUInt32(hex, 16);

            return true;
        }
        catch (Exception exception)
        {
            return false;
        }
    }

推荐阅读

    linux命令解析dns?

    linux命令解析dns?,地址,系统,服务,网络,信息,状态,服务器,企业,管理,分析,Li

    linuxid命令解析?

    linuxid命令解析?,系统,工作,信息,密码,命令,工具,软件,电脑,情况,标准,linux

    编程解析linux命令?

    编程解析linux命令?,系统,标准,基础,设备,发行,电脑,工具,密码,名字,适当,如

    linux基础命令及解析?

    linux基础命令及解析?,工作,系统,地址,信息,基础,命令,单位,管理,数据,标准,l

    linux正向解析命令?

    linux正向解析命令?,系统,工作,地址,命令,管理,单位,信息,数据,目录,常用命

    linux系统命令解析?

    linux系统命令解析?,工作,系统,命令,报告,情况,地址,资料,名称,状态,环境,Lin

    linux撤销命令解析?

    linux撤销命令解析?,系统,标准,工具,下来,数字,工作,命令,环境,设备,位置,lin

    linux命令parse?

    linux命令parse?,系统,数据,软件,代码,服务,工具,检测,行用,网络,认证,Linux

    linux解析jar命令?

    linux解析jar命令?,平台,工程,工具,文件,标准,名称,环境,项目,电脑,系统,linu

    linux命令解析模板化?

    linux命令解析模板化?,系统,工作,地址,命令,位置,目录,管理,最新,数据,通讯

    linux解析命令行参数?

    linux解析命令行参数?,系统,信息,实时,单位,情况,状态,百分比,名称,进程,设

    linux中mv命令解析?

    linux中mv命令解析?,系统,管理,命令,名字,文件,情况,工作,互动,目录,文件夹,l

    linux命令解析时间?

    linux命令解析时间?,时间,系统,信息,环境,地址,命令,数据,标准,历史,用户,LIN

    linux打包命令解析?

    linux打包命令解析?,系统,文件,命令,工具,名称,时间,目录,后缀,示例,表示,Lin

    linux十六进制命令?

    linux十六进制命令?,数据,数字,系统,位置,信息,软件,文件,设备,设计,烽火,Lin

    Python命名空间实例解析

    Python命名空间实例解析,异常,名字,空间,代码,培训,观察,地方,情况,变量,函