2010-06-21 31 views
11

¿Qué es una matriz byte en el contexto de .NET framework?¿Qué es una matriz byte []?

Estoy familiarizado con las definiciones estándar como array y byte y estoy muy familiarizado con conceptos de ingeniería electrónica como Byte. Pero no puedo conectarlo en términos de conceptos de informática. Veo que se usa en todas partes, y lo uso sin realmente entenderlo profundamente.

+2

¿La matriz de bytes es de alguna manera diferente de cualquier otra matriz? ¿Por qué preguntas explícitamente sobre la matriz de bytes? – Andrey

+7

Me resulta difícil entender cómo podría decir que está familiarizado con las definiciones estándar de "matriz" y "byte" y, sin embargo, no entiende lo que significaría el término "matriz de bytes". ¿Qué pasa es confuso para usted? –

Respuesta

16

En .NET, un byte es básicamente un número desde 0 hasta 255 (los números que se pueden representar con ocho bits).

Por lo tanto, una matriz byte es sólo un conjunto de los números 0 - 255.

En un nivel inferior, una matriz es un bloque contiguo de memoria, y una matriz de bytes es sólo una representación de esa memoria en Trozos de 8 bits.

+0

Gracias ... Me escribió el siguiente applet sencillo y funciona muy bien ... static void main (String [] args) { byte [] bytearray = new byte [] {0, 1, 2, 3 , 254, 255}; foreach (byte b en bytearray) { Console.WriteLine ("{0}", b.ToString()); } Console.ReadLine(); } –

3

Es una matriz de byte. Se trata de datos binarios, datos no estructurados (en términos del lenguaje en ese momento en el tiempo, ¡diferentes que insignificantes!) Que pueden ser arbitrariamente largos.

Piense en cargar una imagen desde un archivo. Debería leer el archivo en un byte[] antes de trabajar con la imagen.

9

Una matriz byte[] es simplemente una matriz de datos sin formato. Por ejemplo, un archivo de tamaño 2000 bytes se puede cargar en una matriz byte[] de 2000 elementos.

5

Un byte es de 8 bits, y una matriz de bytes, es una matriz de bytes ... Realmente es así de simple.

Lo que hay que tener en cuenta es que el carácter y el byte son diferentes. En el antiguo estilo C, un carácter y un byte eran básicamente lo mismo. En .NET, los caracteres son Unicode y pueden tener entre 8 y 32 bits por carácter. Aquí es donde la codificación entra en juego. Puede convertir una cadena en una matriz de bytes y puede convertir una matriz de bytes en una cadena utilizando la clase Encoding.

7

Técnicamente, toda la memoria es una matriz gigante de bytes (hasta 2 bytes direccionables en un espacio de direcciones de 32 bits). En C# (y C, C++, Java y muchos otros lenguajes), una matriz de bytes es simplemente un fragmento contiguo de memoria. Por lo tanto, una matriz byte[n] es un bloque de n bytes.

Las matrices de bytes normalmente no tienen otro tipo que "byte", que es simplemente un elemento de datos de 8 bits.

Los arrays de bytes se usan generalmente para E/S de bajo nivel, como búferes de lectura/escritura para archivos y redes, como búferes de imágenes gráficas y como flujos de datos "sin tipo".

Addendum

Bytes también se conocen como octetos, es decir, valores de ocho bits. Los octetos son la unidad universal para el intercambio de datos entre prácticamente todos los sistemas informáticos y de información actualmente en uso.

Incluso los sistemas y las codificaciones que utilizan algo distinto de los valores de 8 bits todavía usan octetos para leer, escribir y transferir datos entre esos sistemas. Por ejemplo, las muestras de sonido de CD de audio están codificadas como un par estéreo de valores de 16 bits con signo muestreados a 44,100 Hz. Cuando se accede como un archivo plano (por ejemplo, como a.Archivo WAV) o flujo de datos, sin embargo, aparece como una secuencia de octetos.

En el contexto de los lenguajes de programación, entonces, dicho archivo de sonido podría almacenarse en su forma original como una matriz de un solo byte.

0

Byte Array: una matriz que solo tiene elementos de tipo Byte. Byte: número entero positivo entre 0 y 255, intervalo cerrado. A y B son dos bytes.

Si C = A + B, entonces, matemáticamente, C = (A + B) módulo 256 Si C = A - B, entonces, matemáticamente, C = (A - B) módulo 256

Así , podría considerar (y algunas veces usar) su matriz de bytes de n elementos como un número en el radix de 256, con n dígitos.

Cuestiones relacionadas