我需要将 BigInteger 打印为负数,但是 ToString("X") 的十六进制重载不正确。
BigInteger be1 = new BigInteger();
be1 = 0x7e;
Console.WriteLine(be1.ToString()); // 126
Console.WriteLine(be1.ToString("X")); // 7E
Console.WriteLine(be1.ToString("x")); // 7e
Console.WriteLine();
be1 = BigInteger.Negate(be1);
Console.WriteLine(be1.ToString()); // -126 OK
Console.WriteLine(be1.ToString("X")); // 82 WRONG
Console.WriteLine(be1.ToString("x")); // 82 WRONG
我做错了什么,我该如何解决这个问题?
(我这样做是值得的,所以我可以在这里匹配十六进制输出,以 C++ 数组为例)