. net Ulong转换为二进制字符串表示

本文关键字:字符串 表示 二进制 Ulong 转换 net | 更新日期: 2023-09-27 18:16:17

我现在要在屏幕上打印二进制(以2为基数)表示的ulong(例如0000000000000000000000001,我知道这是不够的零)

我刚刚注意到,由于某种原因没有Convert。ToString(ulong, base)重载,这意味着我可以long转换为base2字符串表示,但是我不能对ulong做同样的事情。

是否有其他。net方法来做到这一点?这个方法没有出现有什么原因吗?(该方法用于int)。将其转换为long会产生相同的结果吗?

Thanks a lot =)

. net Ulong转换为二进制字符串表示

你可以写Convert.ToString((long)value, 2);

ulong转换为long不会改变位模式。

我记得,没有Convert方法来处理UInt64UInt32,因为Convert是CLS兼容的,而处理无符号值的公共方法不是CLS兼容的。

参见公共语言规范。

这不会改变位模式。考虑:

ulong foo = 0x7FFFFFFFFFFFFFFF;
Console.WriteLine(Convert.ToString((long) foo, 2));
foo = 0x8000000000000000;
Console.WriteLine(Convert.ToString((long)foo, 2));

输出为:

111111111111111111111111111111111111111111111111111111111111111
1000000000000000000000000000000000000000000000000000000000000000

注意,第一行有63位。高位为0。第二行有64位。高位设置正确