Was meinen wir mit Byte-Array? [geschlossen]


103

Könnte jemand bitte erklären, ich verstehe das Konzept nicht genau.

Was ist ein Byte-Array?

Wo und wann verwenden wir es in Anwendungen / Programmen?

Welche Vor- und Nachteile hat die Verwendung eines Byte-Arrays?


Ich denke, das macht Sinn; denn wenn Sie Java-E / A-Klassen lesen; zum Beispiel ByteArrayInputStream; ByteArrayOutputStream. Wie kann man klarstellen, was ByteArrayInputStream, ByteArrayOutputStream bedeutet, wenn man ByteArray nicht versteht?
CuriousMind

Antworten:


74

Ein Byte besteht aus 8 Bits (Binärdaten).

Ein Byte-Array ist ein Array von Bytes (Tautologie FTW!).

Sie können ein Byte-Array verwenden, um eine Sammlung von Binärdaten zu speichern, z. B. den Inhalt einer Datei. Der Nachteil dabei ist, dass der gesamte Dateiinhalt in den Speicher geladen werden muss.

Für große Mengen an Binärdaten ist es besser, einen Streaming-Datentyp zu verwenden, wenn Ihre Sprache dies unterstützt.


16
Um extrem pedantisch zu werden, wird nicht garantiert, dass ein Byte 8 Bit beträgt. Es ist sicherlich der De-facto-Standard von heute, aber historisch gesehen war dies nicht immer der Fall. en.wikipedia.org/wiki/Byte
JaredPar

14
@JaredPar: Genau, aber ich denke, es wäre ein bisschen übertrieben, wenn ein Haftungsausschluss jedes Mal benötigt würde, wenn jemand angibt, dass ein Byte 8 Bit ist.
Dinah

6
@ Dinah, ich stimme zu, deshalb habe ich den pedantischen Haftungsausschluss hinzugefügt. Ich habe mir gerade die relevante Seite angesehen.
JaredPar

6
Können Sie bitte etwas Licht machen The downside to this is that the entire file contents must be loaded into memory.?
CodeYogi

1
@ JeffOrris nicht sicher, was Sie unter "Konvertieren in ein Byte-Array" verstehen . Das ist nichts, was Sie normalerweise tun würden. Auch "weniger anfällig" für was?
Phil

54

Ich nehme an, Sie wissen, was ein Byte ist. Ein Byte-Array ist einfach ein Speicherbereich, der eine Gruppe zusammenhängender (nebeneinander liegender) Bytes enthält, so dass es sinnvoll ist, über sie in der Reihenfolge zu sprechen: das erste Byte, das zweite Byte usw.

Ebenso wie Bytes verschiedene Arten und Bereiche von Daten codieren können (Zahlen von 0 bis 255, Zahlen von -128 bis 127, einzelne Zeichen unter Verwendung von ASCII, z. B. 'a' oder '%', CPU-Operationscodes), jedes Byte in einem Byte-Array kann eines dieser Dinge sein oder zu einigen Multi-Byte-Werten beitragen, z. B. Zahlen mit größerem Bereich (z. B. 16-Bit-Int ohne Vorzeichen von 0..65535), internationale Zeichensätze, Textzeichenfolgen ("Hallo") oder Teil / alle kompilierten Computerprogramme.

Das Entscheidende an einem Byte-Array ist, dass es einen indizierten (schnellen), präzisen und unformatierten Zugriff auf jeden 8-Bit-Wert bietet, der in diesem Teil des Speichers gespeichert ist, und dass Sie diese Bytes bearbeiten können, um jedes einzelne Bit zu steuern. Das Schlimme ist, dass der Computer jeden Eintrag einfach als unabhängige 8-Bit-Zahl behandelt - mit der sich Ihr Programm möglicherweise befasst, oder Sie bevorzugen einen leistungsstarken Datentyp wie eine Zeichenfolge, die die eigene Länge verfolgt und wächst nach Bedarf oder eine Gleitkommazahl, mit der Sie beispielsweise 3.14 speichern können, ohne über die bitweise Darstellung nachzudenken. Als Datentyp ist es ineffizient, Daten am Anfang eines langen Arrays einzufügen oder zu entfernen, da alle nachfolgenden Elemente gemischt werden müssen, um die erzeugte / erforderliche Lücke zu schließen oder zu füllen.


1
Sehr gute Erklärung !!!
Sundararaj Govindasamy

11

Aus Wikipedia :

In der Informatik ist eine Array-Datenstruktur oder einfach ein Array eine Datenstruktur, die aus einer Sammlung von Elementen (Werten oder Variablen) besteht, die jeweils durch einen oder mehrere ganzzahlige Indizes gekennzeichnet sind und so gespeichert werden, dass die Adresse jedes Elements aus seinem Index berechnet werden kann Tupel durch eine einfache mathematische Formel.

Wenn Sie also Byte-Array sagen, beziehen Sie sich auf ein Array mit einer definierten Länge (z. B. Anzahl der Elemente), das eine Sammlung von Elementen mit Byte-Größe (8 Bit) enthält.

In C # könnte ein Byte-Array folgendermaßen aussehen:

byte[] bytes = { 3, 10, 8, 25 };

Das obige Beispiel definiert ein Array von 4 Elementen, wobei jedes Element bis zu einem Byte lang sein kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.