【发布时间】:2016-03-15 11:05:10
【问题描述】:
我会将 ulong 值的 bin/oct/dec/hex 值作为字符串。所以我必须使用 convert.tostring(, base) 和所需的基础。为了支持这一点,我将 ulong 值转换为 long,而 convert.tostring(, base) 支持 long 以将 bin/oct/dec/hex 值作为 ulong 的字符串。我对吗?
//while Convert.ToString does not support ulong with base
//Convert.ToString(ulong.MaxValue, 2);
// following code sample is the same like not supported ToString on line 2, right?
ulong ul = ulong.Maxvalue;
long l = (long)ul;
Convert.ToString(l, 8); //8 => oct, 2 => bin
好的,对于 dec,我可以使用 ul.ToString(); 对于十六进制,ul.ToString("X");
基于Copy bits from ulong to long in C# 我有点困惑。这是否为我提供了 ulong 的正确 Oct 和 Bin 字符串表示?
【问题讨论】:
-
您不能将 MaxValue 从 ulong 转换为 long。
-
MaxValue 只是一个例子,它可以是任何 ulong 值。我知道有符号和无符号的值不同,但是十六进制八进制和二进制表示应该相同还是我错了?
-
应该是一样的
-
向 UInt64 写一个扩展方法,使用 string.Format 输出值而不是依赖于 Convert。