BigInteger und ByteArray
-
Hallo,
ich habe hier ein BigInteger. die Zahl möchte ich ByteWeise umdrehen. Ich möchte das ganze aber ohne Stringoperationen lösen.
BigInteger bigIntegerIn=BigInteger.valueOf(98765);
byte[] byteArray= bigIntegerIn.toByteArray();byte[] byteArrayReserve= new byte[byteArray.length];
for (int i = 0; i < byteArrayReserve.length; i++) {
byteArrayReserve[i]= (byte)((inValue[byteArray.length- (i+1)]));
}BigInteger bigIntegerInerg = new BigInteger(byteArrayReserve);
Das Ergebnis stimmt nicht. Es sollte folgendes rauskommen: 16736013
Also Eingabe war: 00001101 01011111 11111111 (98765)
Bytes Umdrehen: 11111111 01011111 00001101 (16736013)Für bigIntegerInerg kommt aber folgendes raus: -3374846
Ich werde das Gefühl nicht los das es was mit dem 2er Komplement zu tun hat.
-
Sry. Die Zeile in der for Schleife soll so lauten:
byteArrayReserve[i]= (byte)((byteArray[byteArray.length- (i+1)]));
-
BigInteger bigIntegerIn=BigInteger.valueOf(98765); byte[] byteArray= bigIntegerIn.toByteArray(); byte[] byteArrayReserve= new byte[byteArray.length]; for (int i = 0; i < byteArrayReserve.length; i++) { byteArrayReserve[i]= (byte)((inValue[byteArray.length- (i+1)])); }