2010-06-21 25 views
11

Che cos'è un array byte nel contesto di .NET framework?Che cos'è un array byte []?

Ho familiarità con definizioni standard come array e byte e molto familiare con concetti di ingegneria elettronica come Byte. Ma non riesco a collegarlo in termini di concetti di informatica. Lo vedo usato ovunque, e lo uso senza comprenderlo veramente profondamente.

+2

l'array di byte è in qualche modo diverso da qualsiasi altro array? perché chiedi esplicitamente a byte array? – Andrey

+7

Trovo difficile capire come si possa affermare che si abbia familiarità con le definizioni standard di "array" e "byte" e tuttavia non si capisca cosa significherebbe il termine "array di byte". Che cosa ti sta confondendo? –

risposta

16

In NET, un byte è fondamentalmente un numero da 0 a 255 (i numeri che possono essere rappresentati da otto bit).

Quindi, una matrice byte è solo un array di numeri 0 - 255.

Ad un livello inferiore, una matrice è un blocco contiguo di memoria, ed una matrice di byte è solo una rappresentazione di quella memoria in Pezzi da 8 bit.

+0

Grazie ... ho scritto il seguente semplice applet e funziona benissimo ... static void Main (string [] args) { byte [] ByteArray = new byte [] {0, 1, 2, 3 , 254, 255}; foreach (byte b in bytearray) { Console.WriteLine ("{0}", b.ToString()); } Console.ReadLine(); } –

3

È un array di byte. Sono dati binari - dati non strutturati (in termini di lingua in quel momento nel tempo - diversi da quelli senza senso!) Che possono essere arbitrariamente lunghi.

Pensate di caricare un'immagine da un file. Dovresti leggere il file in un byte[] prima di lavorare con l'immagine.

9

Un array byte[] è semplicemente una matrice di dati non elaborati. Ad esempio, un file di dimensione 2000 byte può essere caricato in un array byte[] di 2000 elementi.

5

Un byte è 8 bit e una matrice di byte è una matrice di byte ... È davvero così semplice.

La cosa da tenere a mente è che char e byte sono diversi. Nel vecchio stile C, un char e un byte erano fondamentalmente la stessa cosa. In .NET, i caratteri sono Unicode e possono essere ovunque da 8 a 32 bit per carattere. È qui che entra in gioco la codifica. È possibile convertire una stringa in un array di byte e convertire una matrice di byte in una stringa utilizzando la classe Encoding.

7

Tecnicamente, tutta la memoria è una gigantesca serie di byte (fino a 2 byte indirizzabili in uno spazio di indirizzi a 32 bit). In C# (e C, C++, Java e molti altri linguaggi), un array di byte è semplicemente un blocco contiguo di memoria. Quindi un array byte[n] è un blocco di n byte.

Gli array di byte in genere non hanno un tipo diverso da "byte", che è semplicemente un elemento di dati a 8 bit.

Gli array di byte vengono generalmente utilizzati per I/O di basso livello, come i buffer di lettura/scrittura per file e reti, come buffer di immagini grafiche e come flussi di dati "non tipizzati".

addendum

byte sono noti anche come ottetti, cioè, i valori a otto bit. Gli ottetti sono l'unità universale per lo scambio di dati tra praticamente tutti i computer e i sistemi informativi in ​​uso oggi.

Anche i sistemi e le codifiche che utilizzano valori diversi da quelli a 8 bit utilizzano ancora ottetti per leggere, scrivere e trasferire dati tra tali sistemi. Ad esempio, i campioni audio CD audio sono codificati come una coppia stereo di valori a 16 bit con segno campionati a 44.100 Hz. Quando si accede come un file flat (ad esempio, come a.File WAV) o flusso di dati, tuttavia, appare come una sequenza di ottetti.

Nel contesto dei linguaggi di programmazione, quindi, un tale file audio potrebbe essere memorizzato nella sua forma grezza come un singolo array di byte.

0

Array di byte: un array che contiene solo elementi di tipo Byte. byte: numero intero positivo compreso tra 0 e 255, intervallum chiuso. A e B sono due byte.

Se C = A + B, quindi, matematicamente, C = (A + B) modulo 256 Se C = A - B, quindi, matematicamente, C = (A - B) modulo 256

Così , potresti prendere in considerazione (e talvolta usare) la matrice dei byte di n elementi come un numero nella radice di 256, con n cifre.