Der Java-Byte-Typ speichert 8 Bit (= 1 Byte) Daten. Die in "Byte" gespeicherte Bitfolge (Binärzahl) wird wie folgt hexadezimal und dezimal ausgedrückt.
Bitfolge(Binärzahl) | Hexadezimal | Dezimalzahl |
---|---|---|
00000000 | 00 | 0 |
~ | ~ | ~ |
01111111 | 7F | 127 |
10000000 | 80 | -128 |
~ | ~ | ~ |
11111111 | FF | -1 |
In diesem Abschnitt wird beschrieben, wie in binärer Notation und in hexadezimaler Notation angezeigt wird.
1: byte b = 10;
2: int i = Byte.toUnsignedInt(b); //Konvertierung ohne Vorzeichen
3: String str = Integer.toBinaryString(i); //Holen Sie sich eine binäre Zeichenfolge
4: str = String.format("%8s", str).replace(' ', '0'); //0 Polsterung
5: System.out.println(str);
--Hexary Notation
1: byte b = 10;
2: System.out.print(String.format("%02X", b));
Die Ausgabeergebnisse von jedem sind wie folgt.
Binärnummer: 00001010
Sechseck: 0A
Wenn Sie die Ausgabemethoden vergleichen, sehen Sie, dass die binäre Notation verschiedene Konvertierungen erfordert.
Ich werde erklären, welche Art von Konvertierung in binärer Notation durchgeführt wird. Zuerst aus der zweiten Zeile.
2: int i = Byte.toUnsignedInt(b); //Konvertierung ohne Vorzeichen
Zu diesem Zeitpunkt ist der Punkt, dass eine vorzeichenlose Konvertierung durchgeführt wird. Der Grund ist, dass die oberen 24 Bits des Typs int auf 0 gesetzt sind.
Bytetyp(ganze Zahl) | int type |
int type |
---|---|---|
00000001(1) | 00000000000000000000000000000001(1) | 00000000000000000000000000000001(1) |
11111111(-1) | 00000000000000000000000011111111(255) | 11111111111111111111111111111111(-1) |
3: String str = Integer.toBinaryString(i); //Holen Sie sich eine binäre Zeichenfolge
Zu diesem Zeitpunkt wird die übergeordnete 0 ignoriert. Aus diesem Grund haben wir nicht signierte Konvertierungen durchgeführt.
int type(ganze Zahl) | Binäre Zeichenfolge |
---|---|
00000000000000000000000000000001(1) | 1 |
00000000000000000000000011111111(255) | 11111111 |
4: str = String.format("%8s", str).replace(' ', '0'); //0 Polsterung
Insbesondere werden nach dem Auffüllen mit Leerzeichen unter Verwendung einer formatierten Zeichenfolge die Leerzeichen durch "0" ersetzt.
Als ich die Funktionsweise des Programms überprüfte, wollte ich plötzlich den Inhalt von Byte [] überprüfen, und als ich nach einer Methode suchte, kämpfte ich unerwartet, sodass ich ein Memo hinterließ, wie ich es realisieren sollte. Es ist eine kleine Geschichte, aber ich hoffe, sie hilft jemandem.
Recommended Posts