. 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 =)
你可以写Convert.ToString((long)value, 2);
将ulong
转换为long
不会改变位模式。
我记得,没有Convert
方法来处理UInt64
或UInt32
,因为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位。高位设置正确