Ich lese Daten von einem anderen System über den seriellen Anschluss. Ich lese Pakete von 133 Bytes. Das zweite Byte ist die Paketnummer und das dritte Byte ist der negative Wert der Paketnummer.So lesen Sie negative Bytewerte in Java unter -128
Das Problem ist, dass der Typ byte
einen Bereich von -128 bis 127 hat Wenn ich versuche, -129 (außerhalb des Bereichs von Byte) zu lesen, es wird der Wert als 127.
geben Was soll ich tun also kann ich -129 bekommen?
(int) (byteval & 0xFF) es wird korrekte Werte nach + 127, dh-128 als 128, aber ich bekomme nicht für negative Werte –
Nun, sicher. Ein Byte kann ein Bereich von beliebigen 256 Werten sein. Wenn Sie wissen, dass das Byte null oder größer ist, kann es zwischen 0 und 255 liegen. Mit "Byteval & 0xFF" sagen Sie dem Compiler mehr oder weniger, dass es sich um eine vorzeichenlose Ganzzahl handelt, also die niedrigste Zahl ist Null. Sagen Sie, dass Sie einen Bytewert haben, der im Voraus bekannt ist, um negativ zu sein? –