Code Golf:C#:将ulong转换为Hex String

时间:2010-02-23 15:17:34

标签: c# hex

我尝试编写一个扩展方法来接收ulong并返回一个字符串,该字符串以十六进制格式表示提供的值,没有前导零。我对我提出的建议并不满意......使用标准.NET库是不是有更好的方法呢?

public static string ToHexString(this ulong ouid)
{
    string temp = BitConverter.ToString(BitConverter.GetBytes(ouid).Reverse().ToArray()).Replace("-", "");

    while (temp.Substring(0, 1) == "0")
    {
        temp = temp.Substring(1);
    }

    return "0x" + temp;
}

3 个答案:

答案 0 :(得分:17)

解决方案实际上非常简单,而不是使用各种怪癖将数字格式化为十六进制,您可以深入研究NumberFormatInfo类。

您的问题的解决方案如下......

return string.Format("0x{0:X}", temp);

虽然我不会为此用途制作扩展方法。

答案 1 :(得分:4)

您可以使用string.format:

string.Format("0x{0:X4}",200);

检查 String Formatting in C# ,了解格式化输出的更全面的“操作方法”。

答案 2 :(得分:1)

在C#6中,您可以使用字符串插值:

$"0x{variable:X}"

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated