【问题标题】:C# - Convert to string the significant part from a hex/ulong valueC# - 从 hex/ulong 值转换为字符串的重要部分
【发布时间】:2013-05-15 03:45:30
【问题描述】:

如何将十六进制/超长整数的重要部分作为字符串?

例如,如果我有 0x00000321321,我想得到“321321”。

如果我尝试类似:

ulong x = 0x0000023632763;
string s = x.toString();

我得到593700707,所以这不是我想要的。

这可能吗?

谢谢!

【问题讨论】:

标签: c# string ulong


【解决方案1】:

ToString(string format) 覆盖与standard hexadecimal formatting "x" 以及TrimStart() 一起使用以消除前导零

string s = x.ToString("x");

(感谢 Keith N. 指出 Trim 是不必要的。)

【讨论】:

  • 我记得我已经试过了。它有效,但不适用于 0x003DEF 之类的值。我会再试一次。谢谢。
  • 显然,我做错了什么。我想我在十六进制字符串上尝试了这个,而不是在十六进制值上,这就是它不起作用的原因。谢谢你们! :)
【解决方案2】:

x.toString("x") 怎么样?我没有方便的 C# 来试用它,但它应该以十六进制输出数字。请参阅docs

【讨论】:

    【解决方案3】:

    非常容易...字符串有很多关于如何创建字符串的选项...

    x.ToString("X");
    

    它只会转换重要的部分。唯一的选择是 x 或 X 控制是否为十六进制数字获取大写字母。

    【讨论】:

      【解决方案4】:

      ToString 支持标准的数字格式。这里是e MSDN link

      int value; 
      
      value = 0x2045e;
      Console.WriteLine(value.ToString("x"));
      // Displays 2045e
      Console.WriteLine(value.ToString("X"));
      // Displays 2045E
      Console.WriteLine(value.ToString("X8"));
      // Displays 0002045E 
      

      【讨论】:

        猜你喜欢
        • 2013-04-01
        • 2016-03-15
        • 2016-02-25
        • 1970-01-01
        • 2016-08-28
        • 1970-01-01
        • 2010-10-15
        • 2020-11-10
        • 1970-01-01
        相关资源
        最近更新 更多