【问题标题】:How to parse hex values into Uint in c#?如何在 C# 中将十六进制值解析为 Uint?
【发布时间】:2017-02-08 09:11:46
【问题描述】:

假设我有以下内容:

int x = 0;
string newX = "0x00A3B43C";

如何将 x 设置为 newX 字符串? 我尝试将其转换为 int32,但它会抛出 System.FormatException,因此无法正常工作。

编辑:这并不是真正的重复,我不应该将十六进制转换为整数来将其定义为整数,对吗?

【问题讨论】:

  • here,或here
  • @Justin 重复的问题,第二个答案,将uint 替换为int,它将起作用。您的屏幕截图不等效——那些十六进制值不是字符串。
  • 我已经看到该方法并尝试过,但它返回 10728508。我想将 x 设置为十六进制值,同时保持它的十六进制形式。

标签: c# type-conversion


【解决方案1】:

你可以很容易地解析字符串:

int x;
string newX = "0x00A3B43C";

if (int.TryParse(newX.Substring(2), NumberStyles.HexNumber, CultureInfo.CurrentCulture, out x))
{
    Console.WriteLine("x = {0}", x); // 10728508
}

source

您无需将十六进制表示法转换为 int 即可将其分配给 int,编译器会为您处理。例如:

int y = 0x00A3B43C;
Console.WriteLine("y = {0}", y); // 10728508

在这两种情况下,控制台都会输出值10728508

【讨论】:

  • 如果你想将int值转换回十六进制字符串,你可以使用string hex = y.ToString("X");
猜你喜欢
  • 2010-09-11
  • 1970-01-01
  • 2015-03-22
  • 2010-12-30
  • 2016-07-17
  • 2018-07-18
  • 1970-01-01
相关资源
最近更新 更多