Мне нужно распечатать BigInteger как отрицательное число, однако Hex-перегрузка ToString («X») неверна.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
Я делаю что-то неправильно, как я могу это исправить?
(Для чего это стоит, что я делаю это так, я могу match the hex output here, illustrated as an C++ array)
Это не совсем так, если принять 8-битное число. -1 = 0xff, -128 = 0x80, -127 = 0x81, -126, как показано – kenny