Why does BigInteger.ToString(“x”) prepend a 0 for values between signed.MaxValue (exclusive) and unsigned.MaxValue (inclusive)?
问题 Examples (asterisks next to odd behavior): [Fact] public void BigInteger_ToString_behavior_is_odd() { writeHex(new BigInteger(short.MaxValue)); // 7fff writeHex(new BigInteger(short.MaxValue) + 1); // 08000 ** writeHex(new BigInteger(ushort.MaxValue)); // 0ffff ** writeHex(new BigInteger(ushort.MaxValue) + 1); // 10000 writeHex(new BigInteger(int.MaxValue)); // 7fffffff writeHex(new BigInteger(int.MaxValue) + 1); // 080000000 ** writeHex(new BigInteger(uint.MaxValue)); // 0ffffffff **