Heim >Java >javaLernprogramm >Wie konvertiert man in Java Ganzzahlen in Byte-Arrays und umgekehrt?

Wie konvertiert man in Java Ganzzahlen in Byte-Arrays und umgekehrt?

Linda Hamilton
Linda HamiltonOriginal
2024-10-26 16:37:30504Durchsuche

How do you convert integers to byte arrays and vice versa in Java?

Ganzzahlen in Byte-Arrays konvertieren und umgekehrt in Java

Das Speichern von Zahlen in Byte-Arrays ist eine grundlegende Operation in der Programmierung. Um Daten effizient zu bearbeiten, ist es wichtig, den Konvertierungsprozess zwischen Ganzzahlen und Byte-Arrays zu verstehen.

Ganzzahl in Byte-Array

Um eine Ganzzahl in ein Byte-Array umzuwandeln, können Sie verwenden ByteBuffer, eine Klasse aus dem java.nio-Paket. Diese Klasse bietet eine praktische Möglichkeit, mit Binärdaten zu interagieren. Hier ist ein Beispiel:

<code class="java">byte[] arr = { 0x00, 0x01 }; // Source byte array
short num = 0;

ByteBuffer wrapped = ByteBuffer.wrap(arr); // Wraps source array in a buffer
wrapped.get(num); // Reads 2 bytes from the buffer and stores in num</code>

Dieser Code verpackt das Quellbyte-Array in einen ByteBuffer und liest die ersten beiden Bytes (0x00 und 0x01) in eine kurze Ganzzahl (num).

Byte Array to Integer

Um ein Byte-Array zurück in eine Ganzzahl umzuwandeln, können Sie dieselbe ByteBuffer-Klasse verwenden. Hier ist ein Beispiel:

<code class="java">byte[] arr = { 0x00, 0x01 };
ByteBuffer dbuf = ByteBuffer.allocate(2);
dbuf.put(arr); // Writes source bytes to the buffer
short num = dbuf.getShort(); // Reads 2 bytes from the buffer and stores in num </code>

Dieser Code schreibt das Quellbyte-Array in einen ByteBuffer und liest dann die ersten beiden Bytes (0x00 und 0x01) in eine kurze Ganzzahl (num).

Den Code verstehen

Der Schlüssel zum Verständnis der ByteBuffer-Klasse besteht darin, dass sie eine Byte-Reihenfolge (Big-Endian oder Little-Endian) verwendet, um die Anordnung der Bytes im Array zu bestimmen. Big-Endian bedeutet, dass das höchstwertige Byte am Anfang des Arrays gespeichert wird, während Little-Endian es am Ende speichert.

Standardmäßig verwendet der ByteBuffer die Big-Endian-Bytereihenfolge. Sie können die Little-Endian-Reihenfolge angeben, indem Sie „wrapped.order(ByteOrder.LITTLE_ENDIAN)“ aufrufen, bevor Sie Vorgänge ausführen.

Das obige ist der detaillierte Inhalt vonWie konvertiert man in Java Ganzzahlen in Byte-Arrays und umgekehrt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn