Also habe ich ein kleines Problem hier, und ich habe keine Ahnung, was könnte falsch sein. Deshalb frage ich ob das (was ich dir jetzt zeige) korrekt ist. Ich mache Binärdateien zu Byte-Listen, sodass ich diese Bytes in halbe Bytes umwandeln kann. Zum Beispiel: Wenn ich 96 als Dezimalzahl (60 als hexadezimal) bekomme, möchte ich 6 und 0 daraus bekommen. Das Gleiche mit 127 (hex: 7F) - Ich möchte 7 und 15 bekommen. Um dies zu erreichen, schrieb ich den folgenden Code: Sie werden feststellen, dass ich "unsigned bytes" dafür brauche, um zu arbeitenSchalten Sie ein vorzeichenbehaftetes Byte in ein vorzeichenloses Halbbyte.
System.out.println((byte) ((UnsignedByte.unsignedToBytes(b) - (UnsignedByte.unsignedToBytes(b) % 16))/16));
System.out.println((byte) (UnsignedByte.unsignedToBytes(b) % 16));
public static int unsignedToBytes(byte b) {
return b & 0xFF;
}
Mache ich etwas falsch oder ist das kein Problem?
Was ist das Problem? – Natecat
Ich bekomme falsche Werte bei falschen Koordinaten und ich möchte nur wissen, ob das Problem hier liegt. – RoiEX