Matriz de bytes C++

Matriz De Bytes C



En C++, una matriz de bytes normalmente se representa como una matriz de tipos de datos de caracteres sin firmar. Se emplea para contener las secuencias de bytes que se utilizan con frecuencia para simbolizar los bloques de memoria o datos binarios. También podemos definirlo como una matriz de bytes en C++, un bloque de memoria contiguo que se utiliza para almacenar una colección secuencial de bytes. Proporciona una forma flexible y eficiente de trabajar con datos binarios sin procesar. Al representar los datos como bytes, tenemos un control preciso sobre su estructura y podemos manipularlos a nivel de bytes. Aquí, crearemos e inicializaremos la matriz de bytes y convertiremos la cadena en la matriz de bytes de este artículo.

Ejemplo 1:

Aquí se incluye el 'iostream', que es el archivo de encabezado que ayuda a utilizar las funciones para ingresar o generar datos. Debajo de esto, utilizamos el espacio de nombres estándar 'std' e invocamos 'main()'. Ahora, en 'main()', declaramos una matriz de bytes con el nombre 'mybyteArray[]' con el tipo de datos 'unsigned char' y también la inicializamos con cinco elementos.

Luego, utilizamos 'cout' que ayuda a representar los datos deseados y colocar el bucle 'for'. Este bucle 'for' ayuda a obtener los elementos de la matriz de bytes, y 'cout' ayuda a representar los elementos de esta matriz de bytes junto con sus números hexadecimales mientras colocamos 'My byteArray[' << i << ']' y “hex” en cout.







Código 1:

#incluir

usando el espacio de nombres estándar ;

En t principal ( ) {

  no firmado carbonizarse mybyteArray [ ] = { 0x31 , 0x32 , 0x33 , 0x34 , 0x35 } ;

corte << 'Los elementos de la matriz de bytes son:' << fin ;

  para ( En t i = 0 ; i < tamaño de ( mybyteArray ) ; i ++ ) {

corte << 'Mi matriz de bytes[' << i << '] = ' << maleficio << ( En t ) mybyteArray [ i ] << fin ;

  }

  devolver 0 ;

}

Producción:



El resultado del código se representa aquí y ahora se muestra la matriz de bytes que creamos en el código anterior.







Ejemplo 2:

Este código incluye el archivo de encabezado 'iostream' que facilita la entrada o salida de datos mediante las funciones. Debajo de esto, llamamos a la función 'main()' y usamos el espacio de nombres estándar 'std'. Luego declaramos e inicializamos una matriz de bytes con el nombre “byteA[]” y el tipo de datos “unsigned char”. Asignamos seis elementos a esta matriz de bytes y luego utilizamos el bucle 'for' para acceder a cada elemento. Utilizamos 'cout' para que los números hexadecimales de los elementos en esta matriz de bytes se muestren a continuación, ya que incluimos tanto 'hex' como 'byteArray[' << a << ']' en él.

Ahora, cambiamos los elementos de esta matriz de bytes asignando '0x11' a 'byteA[0]'. Luego, asignamos “0x46” y “0x77” a “byteA[2]” y “byteA[4]”, respectivamente. Luego, estos valores se modifican a partir de la matriz de bytes que creamos. Después de esto, utilizamos el bucle 'for' nuevamente para acceder a todos los elementos de la matriz de bytes y al 'cout' agregado a continuación. Ahora, los valores modificados se representan aquí junto con sus números hexadecimales.



Código 2:

#incluir

usando el espacio de nombres estándar ;

En t principal ( ) {

  no firmado carbonizarse byteA [ ] = { 0x21 , 0x22 , 0x23 , 0x24 , 0x25 , 0x26 } ;

corte << 'Acceder a elementos de matriz de bytes' << fin ;

  para ( En t a = 0 ; a < tamaño de ( byteA ) ; a ++ ) {

corte << 'La matriz de bytes[' << a << '] = ' << maleficio << ( En t ) byteA [ a ] << fin ;

  }

corte << ' \norte Cambiar elementos de la matriz de bytes:' << fin ;

byteA [ 0 ] = 0x11 ;

byteA [ 2 ] = 0x46 ;

byteA [ 4 ] = 0x77 ;

  para ( En t a = 0 ; a < tamaño de ( byteA ) ; a ++ ) {

corte << 'La matriz de bytes[' << a << '] = ' << maleficio << ( En t ) byteA [ a ] << fin ;
 
  }

  devolver 0 ;

}

Producción:

Se representan la matriz de bytes que creamos y la matriz modificada. Modificamos los valores de esta matriz de bytes en nuestro código, que también se muestra en este resultado.

Ejemplo 3:

Aquí, utilizamos el método 'transform()' para convertir nuestros datos de cadena en la matriz de bytes en este código. Los archivos de encabezado 'iostream', 'cstddef' y 'algoritmo' se incluyen en este código. Estos archivos de encabezado se importan para que podamos utilizar fácilmente las funciones que se definen en ellos. Debajo de esto, colocamos el espacio de nombres 'std' y llamamos al método 'main()'. Luego, inicializamos la variable 'myString' del tipo de datos 'string' con 'Hello World'.

Ahora agregamos 'cout' para mostrar la declaración dada. Debajo de esto, creamos la matriz de bytes del mismo tamaño que 'myString.length()'. Después de esto, utilizamos la función 'transform()' que itera sobre los caracteres de la cadena y coloca el 'carácter constante y' y el 'byte de retorno (carácter)' que convierte el elemento de la cadena en bytes y los copia en el byte. formación.

Después de esto, usamos el bucle 'for' donde agregamos 'const byte& byt: byteArray' que itera sobre la matriz de bytes. Luego, agregamos el 'cout' que muestra todos los elementos que se convierten en la matriz de bytes.

Código 3:

#incluir

#incluir

#incluir

usando el espacio de nombres estándar ;

En t principal ( )

{

cadena miCadena = 'Hola Mundo' ;

corte << 'La cadena es' << micadena << fin << fin ;

corte << 'La cadena convertida a ByteArray es ' << fin ;

byte matriz de bytes [ miCadena. longitud ( ) ] ;

transformar (

miCadena. comenzar ( ) ,

miCadena. fin ( ) ,

matriz de bytes ,

    [ ] ( constante carbonizarse & personaje ) {

        devolver byte ( personaje ) ;

    } ) ;

  para ( constante byte & un piso : matriz de bytes )

  {

corte << a_entero < En t > ( un piso ) << ', ' ;

  }

corte << fin ;

  devolver 0 ;

}

Producción:

La cadena y la cadena convertida en la matriz de bytes ahora se representan en este resultado. Convertimos esta cadena en una matriz de bytes usando el método 'transform()' en nuestro código.

Ejemplo 4:

Convirtamos nuestros datos de cadena en una matriz de bytes usando el método 'memcpy()' en este código. Ahora, este código incluye los archivos de encabezado 'iostream', 'cstddef' y 'algorithm'. Importamos estos archivos de encabezado para que podamos utilizar las funciones que se describen en ellos con facilidad. Colocamos el espacio de nombres 'std' debajo de esto e invocamos la función 'main()' desde esta ubicación.

A continuación, inicializamos el “Byte Array” en la variable “stringData”. Para mostrar la declaración proporcionada, ahora incluimos el comando 'cout'. Debajo de eso, se construye una matriz de bytes con el mismo tamaño que 'stringData.length()'. Utilizamos el método 'memcpy()' y pasamos tres parámetros en esta función que son 'ArrayOfBytes', 'stringData.data()' y 'stringData.length()', respectivamente. Esta función ayuda a copiar la memoria del carácter de la cadena a la matriz de bytes que declaramos.

Después de esto, usamos el bucle 'for' en el que agregamos 'const byte& my_byte: ArrayOfBytes' para recorrer la matriz de bytes. Luego, agregamos la función 'cout' que muestra cada elemento que se ha transformado en la matriz de bytes.

Código 4:

#incluir

#incluir

#incluir

usando el espacio de nombres estándar ;

En t principal ( )

{

cadena cadenaDatos = 'Matriz de bytes' ;

corte << 'Los datos de la cadena son' << cadenaDatos << fin << fin ;

corte << 'La cadena convertida aquí en ByteArray es' << fin ;

matriz de bytes de bytes [ cadena de datos. longitud ( ) ] ;

  memcpy ( Matriz de bytes , cadena de datos. datos ( ) , cadena de datos. longitud ( ) ) ;

  para ( constante byte & mi_byte : Matriz de bytes )

  {

corte << a_entero < En t > ( mi_byte ) << ', ' ;

  }

 

  devolver 0 ;

}

Producción:

Este resultado representa la cadena original y la cadena que se transforma en una matriz de bytes. Usamos el método “memcpy()” de nuestro código para transformar esta cadena en la matriz de bytes.

Conclusión

Aprendimos que las matrices de bytes en C++ ofrecen un enfoque de bajo nivel para trabajar con datos binarios de manera eficiente. Exploramos que nos brindan control sobre la memoria y una base para tareas como serialización, redes y procesamiento de datos de bajo nivel. En este artículo, exploramos el concepto de declarar e inicializar la matriz de bytes en C++, así como la conversión de la cadena en la matriz de bytes junto con sus códigos.