Klein0r
Erfahrenes Mitglied
Hallo zusammen!
Ich wunder mich die ganze zeit warum ich falsche Werte errechne aber das Problem liegt anscheinend in der BigInteger-Klasse.
(die genutzte Funktion StringOperations.byteToHex() wandelt einfach nur ein Byte in einen Hex-String)
Folgendes Problem:
Das funktioniert prima. Es wird folgendes ausgegeben:
Nun teste ich das ganze mit einem anderen String wie z.B. 99:
plötlich hat das Array 2 Elemente. Folgendes Ergebnis:
Warum ist das so? Mit Hex-Werten unter 80 tritt das Problem nicht auf und es wird auch nur ein Element im Array erzeugt. Alles was darüber liegt erzeugt eine zweite Position.
Ich hoffe ihr könnt mir folgen und eine logische Erklärung geben
Alternativ bräuchte ich einfach nur eine andere Methode einen einzelnen Hexwert in ein Byte zu wandeln!
lg
Ich wunder mich die ganze zeit warum ich falsche Werte errechne aber das Problem liegt anscheinend in der BigInteger-Klasse.
(die genutzte Funktion StringOperations.byteToHex() wandelt einfach nur ein Byte in einen Hex-String)
Folgendes Problem:
Java:
byte[] b = new BigInteger("16", 16).toByteArray();
for (byte by : b) {
System.out.println(StringOperations.byteToHex(by));
}
Code:
16
Nun teste ich das ganze mit einem anderen String wie z.B. 99:
Java:
byte[] b = new BigInteger("99", 16).toByteArray();
for (byte by : b) {
System.out.println(StringOperations.byteToHex(by));
}
Code:
00
99
Warum ist das so? Mit Hex-Werten unter 80 tritt das Problem nicht auf und es wird auch nur ein Element im Array erzeugt. Alles was darüber liegt erzeugt eine zweite Position.
Ich hoffe ihr könnt mir folgen und eine logische Erklärung geben
Alternativ bräuchte ich einfach nur eine andere Methode einen einzelnen Hexwert in ein Byte zu wandeln!
lg