Motivation: Ich möchte Hashes (MD5/SHA1 usw.) in dezimale Ganzzahlen konvertieren, um Strichcodes in Code128C zu erstellen. Der Einfachheit halber ziehe ich es vor, dass alle resultierenden (großen) Zahlen positiv sind.
Ich bin in der Lage, Byte[] in BigInteger in C# zu konvertieren...
Ein Beispiel von dem, was ich bisher habe:
byte[] data;
byte[] result;
BigInteger biResult;
result = shaM.ComputeHash(data);
biResult = new BigInteger(result);
Aber (rostige CS hier) bin ich richtig, dass ein Byte-Array kann immer auf zwei Arten interpretiert werden:
- (A): als vorzeichenbehaftete Zahl
- (B): als eine Zahl ohne Vorzeichen
Ist es möglich, eine UNSIGNED BigInteger aus einem Byte[] in C# zu machen?
Sollte ich einfach ein 0x00 (Null-Byte) vor das Byte[] setzen?
EDIT : Vielen Dank an AakashM, Jon und Adam Robinson, anhängend ein Null-Byte hat das erreicht, was ich brauchte.
EDIT2: Ich hätte vor allem die detaillierte Dokumentation des BigInteger(byte[])-Konstruktors lesen sollen, dann hätte ich die Abschnitte über die Beschränkung auf positive Zahlen durch Anhängen des Null-Bytes gesehen.