Wie Maske byte-Wert in Java?

Mein problem ist, dass einige wie dieser.

Ich habe ein paar Berechnungen in byte in Java. In einigen Berechnungen bekomme ich mein gewünschtes Ergebnis "2a" in der byte-Wert, aber in einigen Berechnungen bekomme ich "ffffff9a" in byte-Wert. Ich will nur die "9a" Wert von dem Ergebnis "ffffff9a". Ich habe versucht, diese aber nicht funktioniert hat.

byte a = (byte) b & 0xff;

wobei b den Wert "ffffff9a" byte-Wert.

Aber während der Anzeige der gleiche Prozess funktioniert wie

System.out.println(Integer.toHexString(b & 0xff));

Wohin gehe ich falsch? Was kann ich tun, um meinen gewünschten Wert?

Dank


Eigentlich bin ich versucht zu konvertieren 8-bit-Zeichen in gsm 7-bit. Auch wenn da jemand mir helfen kann, durch diese, wäre es ebenfalls hilfreich sein. String wird gespeichert als ein byte-array und ich habe zu konvertieren, das string oder 8-bit-bytes in 7 bit.

Dein code sieht in Ordnung für mich, überprüfen Sie testen es richtig? Vielleicht zeigen die ganze routine? Auch ist 'b' byte-Typ?
Scheint gut zu mir System.out.println(Integer.toHexString(0xffffff9a & 0xff)); Drucke 9a ideone.com/ikxuO
ja b ist vom Typ byte, und auch der Druck ist in Ordnung, ich will speichern des Werts in einer Variablen, wo das problem ist

InformationsquelleAutor bunkdeath | 2011-07-14

Schreibe einen Kommentar