【问题标题】:C# Convert a number larger than Int64 to HexaDecimalC# 将大于 Int64 的数字转换为 HexaDecimal
【发布时间】:2012-04-30 06:26:06
【问题描述】:

我正在尝试在 C# 中将一个大数字(例如:9407524828459565063)转换为十六进制(例如:828E3DFD00000000)。

问题是数字大于Int64的最大值。

我到处查找,找不到可行的解决方案。

这里有什么帮助吗?

谢谢。

【问题讨论】:

  • 如果它大于 int64,你如何接收它?文字?

标签: c# .net hex int64


【解决方案1】:

我会使用 System.Numerics.BigInteger 类来执行此操作。确切的解决方案取决于您拥有此数字的格式:字符串、双精度、其他。

如果字符串(s):

var bigInt = BigInteger.Parse(s);
var hexString = bigInt.ToString("x");

如果双倍 (d):

var bigInt = new BigInteger(d);
var hexString = bigInt.ToString("x");

...等等。

【讨论】:

【解决方案2】:

如果您使用的是 .NET 4.0,您可能会查看 BigInteger 类:

http://msdn.microsoft.com/en-us/library/system.numerics.biginteger.aspx

  BigInteger bi = new BigInteger();
  bi = 9407524828459565063;
  string bix = bi.ToString("X");

【讨论】:

    【解决方案3】:

    也许:

    BigInteger b = 9407524828459565063;
    var hex = b.ToString("X2");
    

    或者

    ulong l = 9407524828459565063;
    var hex = l.ToString("X2");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 2019-11-27
      相关资源
      最近更新 更多