Code Golf:C#:将 ulong 转换为十六进制字符串

发布于 2024-08-22 20:03:22 字数 402 浏览 3 评论 0原文

我尝试编写一个扩展方法来接受 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;
}

I tried writing an extension method to take in a ulong and return a string that represents the provided value in hexadecimal format with no leading zeros. I wasn't really happy with what I came up with... is there not a better way to do this using standard .NET libraries?

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;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

未蓝澄海的烟 2024-08-29 20:03:22

解决方案实际上非常简单,您可以深入研究NumberFormatInfo 类。

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

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

尽管我不会为此用途制定扩展方法。

The solution is actually really simple, instead of using all kinds of quirks to format a number into hex you can dig down into the NumberFormatInfo class.

The solution to your problem is as follows...

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

Though I wouldn't make an extension method for this use.

猥琐帝 2024-08-29 20:03:22

您可以使用 string.format:

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

检查C# 中的字符串格式 有关格式化输出的更全面的“操作方法”。

You can use string.format:

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

Check String Formatting in C# for a more comprehensive "how-to" on formatting output.

转瞬即逝 2024-08-29 20:03:22

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

$"0x{variable:X}"

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

In C# 6 you can use string interpolation:

$"0x{variable:X}"

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文