Мотивация: Я хотел бы преобразовать хэши (MD5/SHA1 и т.д.) В десятичные целые числа с целью создания штрих-кодов в Code128C. Для простоты я предпочитаю, чтобы все полученные (большие) числа были положительными.
Я могу конвертировать byte [] в BigInteger в С#...
Пример из того, что я имею до сих пор:
byte[] data;
byte[] result;
BigInteger biResult;
result = shaM.ComputeHash(data);
biResult = new BigInteger(result);
Но (ржавый CS здесь) я прав, что байтовый массив всегда можно интерпретировать двумя способами:
- (A): как подписанный номер
- (B): как число без знака
Можно ли сделать неподписанный BigInteger из байта [] в С#?
Должен ли я просто добавить 0x00 (нулевой байт) перед байтом []?
EDIT: Спасибо AakashM, Джону и Адаму Робинсону, добавив нулевой байт, достиг того, что мне было нужно.
EDIT2: Главное, что я должен был сделать, это прочитать подробный документ конструктора BigInteger (byte []), тогда я бы увидел разделы о том, как ограничиться положительными числами, добавив нулевой байт.