Array di byte C++

Array Di Byte C



In C++, un array di byte viene in genere rappresentato come un array di tipi di dati char senza segno. Viene utilizzato per contenere sequenze di byte che vengono frequentemente utilizzate per simboleggiare i blocchi di memoria o i dati binari. Possiamo anche definirlo come un array di byte in C++, un blocco di memoria contiguo utilizzato per archiviare una raccolta sequenziale di byte. Fornisce un modo flessibile ed efficiente per lavorare con dati binari grezzi. Rappresentando i dati come byte, abbiamo un controllo preciso sulla loro struttura e possiamo manipolarli a livello di byte. Qui creeremo e inizializzeremo l'array di byte e convertiremo la stringa nell'array di byte in questo articolo.

Esempio 1:

Qui è incluso 'iostream', che è il file di intestazione che aiuta a utilizzare le funzioni per inserire o inviare i dati. Al di sotto di questo, utilizziamo lo spazio dei nomi standard “std” e invochiamo “main()”. Ora, in 'main()', dichiariamo un array di byte con il nome 'mybyteArray[]' con il tipo di dati 'unsigned char' e lo inizializziamo anche con cinque elementi.

Quindi, utilizziamo 'cout' che aiuta a visualizzare i dati desiderati e a inserire il ciclo 'for'. Questo ciclo 'for' aiuta a ottenere gli elementi dell'array di byte e 'cout' aiuta a rendere gli elementi di questo array di byte insieme ai loro numeri esadecimali quando inseriamo 'My byteArray[' << i << ']' e 'esadecimale' in cout.







Codice 1:

#include

utilizzando lo spazio dei nomi std ;

int principale ( ) {

non firmato car mybyteArray [ ] = { 0x31 , 0x32 , 0x33 , 0x34 , 0x35 } ;

cout << 'Gli elementi dell'array di byte sono:' << fine ;

per ( int io = 0 ; io < taglia di ( mybyteArray ) ; io ++ ) {

cout << 'Il mio byteArray[' << io << '] = ' << esadecimale << ( int ) mybyteArray [ io ] << fine ;

}

ritorno 0 ;

}

Produzione:



Il risultato del codice viene visualizzato qui e viene ora visualizzato l'array di byte creato nel codice precedente.







Esempio 2:

Questo codice include il file di intestazione 'iostream' che facilita l'input o l'output dei dati utilizzando le funzioni. Al di sotto di questo, chiamiamo la funzione 'main()' e utilizziamo lo spazio dei nomi standard 'std'. Quindi dichiariamo e inizializziamo un array di byte con il nome 'byteA[]' e il tipo di dati 'unsigned char'. Assegniamo sei elementi a questo array di byte e quindi utilizziamo il ciclo 'for' per accedere a ciascun elemento. Utilizziamo 'cout' in modo che i numeri esadecimali degli elementi in questo array di byte vengano visualizzati di seguito poiché includiamo sia 'hex' che 'byteArray[' << a << ']' al suo interno.

Ora modifichiamo gli elementi di questo array di byte assegnando '0x11' a 'byteA[0]'. Quindi, assegniamo '0x46' e '0x77' rispettivamente a 'byteA[2]' e 'byteA[4]'. Quindi, questi valori vengono modificati dall'array di byte che abbiamo creato. Successivamente, utilizziamo nuovamente il ciclo 'for' per accedere a tutti gli elementi dell'array di byte e al 'cout' aggiunto di seguito. Ora, i valori modificati vengono visualizzati qui insieme ai relativi numeri esadecimali.



Codice 2:

#include

utilizzando lo spazio dei nomi std ;

int principale ( ) {

non firmato car byteA [ ] = { 0x21 , 0x22 , 0x23 , 0x24 , 0x25 , 0x26 } ;

cout << 'Accesso agli elementi dell'array di byte' << fine ;

per ( int UN = 0 ; UN < taglia di ( byteA ) ; UN ++ ) {

cout << 'Il byteArray[' << UN << '] = ' << esadecimale << ( int ) byteA [ UN ] << fine ;

}

cout << ' \N Modifica degli elementi dell'array di byte:' << fine ;

byteA [ 0 ] = 0x11 ;

byteA [ 2 ] = 0x46 ;

byteA [ 4 ] = 0x77 ;

per ( int UN = 0 ; UN < taglia di ( byteA ) ; UN ++ ) {

cout << 'Il byteArray[' << UN << '] = ' << esadecimale << ( int ) byteA [ UN ] << fine ;

}

ritorno 0 ;

}

Produzione:

Viene eseguito il rendering dell'array di byte che abbiamo creato e dell'array modificato. Abbiamo modificato i valori di questo array di byte nel nostro codice che viene visualizzato anche in questo risultato.

Esempio 3:

Qui utilizziamo il metodo 'transform()' per convertire i nostri dati di stringa nell'array di byte in questo codice. I file di intestazione 'iostream', 'cstddef' e 'algoritmo' sono inclusi in questo codice. Questi file di intestazione vengono importati in modo da poter utilizzare facilmente le funzioni in essi definite. Sotto questo, posizioniamo lo spazio dei nomi “std” e chiamiamo il metodo “main()”. Quindi inizializziamo la variabile 'myString' del tipo di dati 'string' con 'Hello World'.

Ora aggiungiamo 'cout' per visualizzare l'istruzione data. Al di sotto di questo, creiamo l'array di byte della stessa dimensione di 'myString.length()'. Successivamente, utilizziamo la funzione 'transform()' che esegue un'iterazione sui caratteri della stringa e inseriamo 'const char& carattere' e 'return byte(carattere)' che converte l'elemento della stringa in byte e li copia nel byte vettore.

Successivamente, utilizziamo il ciclo 'for' in cui aggiungiamo 'const byte& byt: byteArray' che esegue l'iterazione sull'array di byte. Quindi aggiungiamo 'cout' che mostra tutti gli elementi convertiti nell'array di byte.

Codice 3:

#include

#include

#include

utilizzando lo spazio dei nomi std ;

int principale ( )

{

stringa miaStringa = 'Ciao mondo' ;

cout << 'La corda è' << myString << fine << fine ;

cout << 'La stringa convertita in ByteArray è ' << fine ;

bytebyteArray [ myString. lunghezza ( ) ] ;

trasformare (

myString. inizio ( ) ,

myString. FINE ( ) ,

byteArray ,

[ ] ( cost car & carattere ) {

ritorno byte ( carattere ) ;

} ) ;

per ( cost byte & un appartamento : byteArray )

{

cout << a_intero < int > ( un appartamento ) << ', ' ;

}

cout << fine ;

ritorno 0 ;

}

Produzione:

In questo risultato viene ora eseguito il rendering della stringa e della stringa convertita nell'array di byte. Abbiamo convertito questa stringa nell'array di byte utilizzando il metodo 'transform()' nel nostro codice.

Esempio 4:

Trasformiamo i nostri dati di stringa in un array di byte utilizzando il metodo 'memcpy()' in questo codice. Ora, questo codice include i file di intestazione 'iostream', 'cstddef' e 'algoritmo'. Importiamo questi file di intestazione in modo da poter utilizzare facilmente le funzioni in essi descritte. Posizioniamo lo spazio dei nomi 'std' sotto questo e invochiamo la funzione 'main()' da questa posizione.

Successivamente, inizializziamo il 'Byte Array' nella variabile 'stringData'. Per mostrare l'istruzione fornita, ora includiamo il comando 'cout'. Al di sotto viene costruito un array di byte con la stessa dimensione di 'stringData.length()'. Utilizziamo il metodo 'memcpy()' e passiamo tre parametri in questa funzione che sono rispettivamente 'ArrayOfBytes', 'stringData.data()' e 'stringData.length()'. Questa funzione aiuta a copiare la memoria del carattere della stringa nell'array di byte che abbiamo dichiarato.

Successivamente, utilizziamo il ciclo 'for' in cui aggiungiamo 'const byte& my_byte: ArrayOfBytes' per attraversare l'array di byte. Quindi, aggiungiamo la funzione 'cout' che mostra ogni elemento che è stato trasformato nell'array di byte.

Codice 4:

#include

#include

#include

utilizzando lo spazio dei nomi std ;

int principale ( )

{

stringastringData = 'Matrice di byte' ;

cout << 'I dati della stringa sono' << stringData << fine << fine ;

cout << 'La stringa convertita qui in ByteArray che è ' << fine ;

byte ArrayOfBytes [ stringData. lunghezza ( ) ] ;

memcpy ( ArrayOfBytes , stringData. dati ( ) , stringData. lunghezza ( ) ) ;

per ( cost byte & mio_byte : ArrayOfBytes )

{

cout << a_intero < int > ( mio_byte ) << ', ' ;

}



ritorno 0 ;

}

Produzione:

Questo risultato esegue il rendering della stringa originale e della stringa trasformata in una matrice di byte. Usiamo il metodo 'memcpy()' del nostro codice per trasformare questa stringa nell'array di byte.

Conclusione

Abbiamo appreso che gli array di byte in C++ offrono un approccio di basso livello per lavorare in modo efficiente con i dati binari. Abbiamo esplorato il fatto che ci forniscono il controllo sulla memoria e una base per attività come la serializzazione, la rete e l'elaborazione dei dati di basso livello. In questo articolo abbiamo esplorato il concetto di dichiarazione e inizializzazione dell'array di byte in C++ nonché la conversione della stringa nell'array di byte insieme ai relativi codici.