Konvertieren von Bytes in vorzeichenlose Bytes in Java
Um das Konzept der Konvertierung von Bytes in vorzeichenlose Bytes in Java zu verstehen, müssen Sie mit einigen Computerkonzepten auf niedriger Ebene vertraut sein. Sie müssen alles über die Konvertierungen, Bits, Bytes, Wörter und so weiter wissen. Lassen Sie uns gleich eintauchen.
Konvertierung von Bytes in vorzeichenlose Bytes in Java
Es gibt 8 Bits in einem Byte, und die Formeln zum Berechnen des Bereichs von vorzeichenbehafteten Bytes und vorzeichenlosen Bytes lauten wie folgt.
Signed Number min = -1 * 2 ^ (N - 1) = -1 * 2 ^ (7) = -128 max = 2 ^ (N - 1) - 1 = 2 ^ 7 - 1 = 127
Unsigned Number min = 0 max = 2 ^ (N) -1 = 2 ^ (8) - 1 = 255
// N is the number of bits
Der Grund für den kleinen Bereich von vorzeichenbehafteten Zahlen ist, dass ein Bit für die Darstellung von vorzeichenbehafteten Symbolen reserviert ist; Deshalb reicht der Bereich von -128 bis 127. In Java gibt es keine vorzeichenlosen Bytes, wenn es um vorzeichenlose Zahlen geht. Also, wie machen wir sie in Java?
Sie können ein vorzeichenloses Byte erstellen, indem Sie sie in eine neue Ganzzahl (int) umwandeln und diese Ganzzahl mit 0xff maskieren (bitweises UND). Auf diese Weise erhalten Sie die letzten 8 Bits, wodurch eine Zeichenerweiterung verhindert wird. Wie wir wissen, ergibt 0xFF = 1111 1111
nach seiner bitweisen UND-Verknüpfung mit dem ursprünglichen Byte ein Byte ohne Vorzeichen.
Wenn Sie sich erinnern, wenn es um vorzeichenbehaftete Bits geht, sind alle linken Bits 1. Die bitweise UND-Operation verwandelt sie in 0, und das ist unsere Darstellung einer vorzeichenlosen Zahl. Sehen Sie sich den folgenden Code an.
import javax.swing.GroupLayout.Alignment;
// library to perform this task
public class Main {
public static void main(String[] args) {
byte byteData = -3; //-3 SIGNED 253 UNSIGNED Byte
int Data = byteData & 0xff;
System.out.println(Data);
}
}
Ausgabe:
253
Es ist ein ziemlich einfaches Verfahren, aber sein Konzept ist etwas komplex. Erfahren Sie hier mehr über vorzeichenlose Bytes in Java.
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn