代码:C#:将ulong转换为十六进制字符串
我尝试编写一个扩展方法,以接收一个ulong并返回一个字符串,该字符串以十六进制格式表示提供的值,不带前导零。我对我的想法不是很满意。。。使用标准的.NET库是否有更好的方法来实现这一点代码:C#:将ulong转换为十六进制字符串,c#,hex,C#,Hex,我尝试编写一个扩展方法,以接收一个ulong并返回一个字符串,该字符串以十六进制格式表示提供的值,不带前导零。我对我的想法不是很满意。。。使用标准的.NET库是否有更好的方法来实现这一点 public static string ToHexString(this ulong ouid) { string temp = BitConverter.ToString(BitConverter.GetBytes(ouid).Reverse().ToArray()).Replace("-", ""
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;
}
解决方案实际上非常简单,而不是使用各种各样的怪癖将数字格式化为十六进制,您可以深入到类中 你的问题的解决办法如下
return string.Format("0x{0:X}", temp);
尽管我不会为此使用创建扩展方法。您可以使用string.format:
string.Format("0x{0:X4}",200);
查看有关格式化输出的更全面的“操作方法”。在C#6中,可以使用字符串插值:
$“0x{variable:X}”
比我快:o)还有,我找到了这个。类似的问题:哈哈,太棒了。返回“0x”+ouid.ToString(“x”).ToUpper();我将提供帮助…因此您可以跳过所有位转换器等。返回string.Format(“0x{0:x}”,temp);如果你想为此写一个扩展(我不会):不需要ToUpper()…只需要我们X而不是X matey:)@Ardman,这很有趣。。。在我所有的谷歌搜索中,我从来没有真正搜索过“ulong to hex”,我一直在所有搜索中输入UInt64。谷歌需要同义词搜索。