Eksempel 1:
'iostream' er inkludert her, som er overskriftsfilen som hjelper til med å bruke funksjonene til å legge inn eller skrive ut dataene. Under dette bruker vi standard navneområdet 'std' og påkaller 'main()'. Nå, i 'main()', erklærer vi en byte-array med navnet 'mybyteArray[]' med datatypen 'unsigned char' og initialiserer den med fem elementer.
Deretter bruker vi 'cout' som hjelper til med å gjengi de ønskede dataene og plassere 'for'-løkken. Denne 'for'-løkken hjelper til med å få elementene i byte-matrisen, og 'cout' hjelper til med å gjengi elementene i denne byte-matrisen sammen med deres heksadesimale tall når vi plasserer 'My byteArray[' << i << ']' og 'hex' i cout.
Kode 1:
#includebruker navneområde std ;
int hoved- ( ) {
usignert røye mybyteArray [ ] = { 0x31 , 0x32 , 0x33 , 0x34 , 0x35 } ;
cout << 'Elementene i byte-arrayen er:' << endl ;
til ( int Jeg = 0 ; Jeg < størrelsen av ( mybyteArray ) ; Jeg ++ ) {
cout << 'My byteArray[' << Jeg << '] = ' << hex << ( int ) mybyteArray [ Jeg ] << endl ;
}
komme tilbake 0 ;
}
Produksjon:
Resultatet av koden gjengis her og byte-arrayen som vi opprettet i forrige kode vises nå.
Eksempel 2:
Denne koden inkluderer «iostream»-overskriftsfilen som forenkler inn- eller utdataene ved hjelp av funksjonene. Under dette kaller vi 'main()'-funksjonen og bruker 'std' standard navneområde. Vi erklærer og initialiserer deretter en byte-array med 'byteA[]'-navnet og datatypen 'unsigned char'. Vi tildeler seks elementer til denne byte-matrisen og bruker deretter 'for'-løkken for å få tilgang til hvert element. Vi bruker 'cout' slik at de heksadesimale tallene for elementene i denne byte-matrisen vises nedenfor ettersom vi inkluderer både 'hex' og 'byteArray[' << a << ']' i den.
Nå endrer vi elementene i denne byte-matrisen ved å tilordne '0x11' til 'byteA[0]'. Deretter tildeler vi '0x46' og '0x77' til henholdsvis 'byteA[2]' og 'byteA[4]'. Deretter endres disse verdiene fra byte-arrayen som vi opprettet. Etter dette bruker vi 'for'-løkken igjen for å få tilgang til alle elementene i byte-arrayen og den ekstra 'cout' nedenfor. Nå er de modifiserte verdiene gjengitt her sammen med deres heksadesimale tall.
Kode 2:
#includebruker navneområde std ;
int hoved- ( ) {
usignert røye byteA [ ] = { 0x21 , 0x22 , 0x23 , 0x24 , 0x25 , 0x26 } ;
cout << 'Tilgang til elementer i byte-array' << endl ;
til ( int en = 0 ; en < størrelsen av ( byteA ) ; en ++ ) {
cout << 'The byteArray[' << en << '] = ' << hex << ( int ) byteA [ en ] << endl ;
}
cout << ' \n Endre elementer i byte-matrisen:' << endl ;
byteA [ 0 ] = 0x11 ;
byteA [ 2 ] = 0x46 ;
byteA [ 4 ] = 0x77 ;
til ( int en = 0 ; en < størrelsen av ( byteA ) ; en ++ ) {
cout << 'The byteArray[' << en << '] = ' << hex << ( int ) byteA [ en ] << endl ;
}
komme tilbake 0 ;
}
Produksjon:
Byte-matrisen som vi opprettet og den modifiserte matrisen gjengis. Vi modifiserte verdiene til denne byte-matrisen i koden vår, som også er gjengitt i dette utfallet.
Eksempel 3:
Her bruker vi 'transform()'-metoden for å konvertere strengdataene våre til byte-arrayen i denne koden. Headerfilene 'iostream', 'cstddef' og 'algoritme' er inkludert i denne koden. Disse overskriftsfilene importeres slik at vi enkelt kan bruke funksjonene som er definert i dem. Under dette plasserer vi 'std'-navneområdet og kaller 'main()'-metoden. Deretter initialiserer vi 'myString'-variabelen til 'string'-datatypen med 'Hello World'.
Nå legger vi til 'cout' for å vise den gitte uttalelsen. Under dette lager vi byte-arrayen av samme størrelse som 'myString.length()'. Etter dette bruker vi 'transform()'-funksjonen som itererer over strengtegnene og plasserer 'const char&-tegnet' og 'return byte(character)' som konverterer elementet i strengen til bytene og kopierer dem til byten array.
Etter dette bruker vi 'for'-løkken der vi legger til 'const byte& byt: byteArray' som itererer over byte-arrayen. Deretter legger vi til 'cout' som viser alle elementene som er konvertert til byte-arrayen.
Kode 3:
#include#include
#include
bruker navneområde std ;
int hoved- ( )
{
streng myString = 'Hei Verden' ;
cout << 'Snoren er' << myString << endl << endl ;
cout << 'Den konverterte strengen til ByteArray er' << endl ;
byte byteArray [ myString. lengde ( ) ] ;
forvandle (
myString. begynne ( ) ,
myString. slutt ( ) ,
byteArray ,
[ ] ( konst røye & karakter ) {
komme tilbake byte ( karakter ) ;
} ) ;
til ( konst byte & en leilighet : byteArray )
{
cout << til_heltall < int > ( en leilighet ) << ', ' ;
}
cout << endl ;
komme tilbake 0 ;
}
Produksjon:
Strengen og den konverterte strengen til byte-arrayen gjengis nå i dette utfallet. Vi konverterte denne strengen til byte-arrayen ved å bruke 'transform()'-metoden i koden vår.
Eksempel 4:
La oss gjøre strengdataene våre om til en byte-array ved å bruke 'memcpy()'-metoden i denne koden. Nå inkluderer denne koden 'iostream', 'cstddef' og 'algoritme' overskriftsfiler. Vi importerer disse overskriftsfilene slik at vi enkelt kan bruke funksjonene som er beskrevet i dem. Vi plasserer 'std'-navneområdet under dette og påkaller 'main()'-funksjonen fra denne plasseringen.
Deretter initialiserer vi 'Byte Array' i 'stringData' -variabelen. For å vise den oppgitte uttalelsen inkluderer vi nå kommandoen 'cout'. Under det er en byte-array med samme størrelse som 'stringData.length()' konstruert. Vi bruker 'memcpy()'-metoden og sender tre parametere i denne funksjonen som er henholdsvis 'ArrayOfBytes', 'stringData.data()' og 'stringData.length()'. Denne funksjonen hjelper til med å kopiere minnet til strengens tegn til byte-arrayen som vi erklærte.
Etter dette bruker vi 'for'-løkken der vi legger til 'const byte& my_byte: ArrayOfBytes' for å gå over byte-arrayen. Deretter legger vi til «cout»-funksjonen som viser hvert element som har blitt transformert til byte-matrisen.
Kode 4:
#include#include
#include
bruker navneområde std ;
int hoved- ( )
{
string stringData = 'Byte-array' ;
cout << 'Strrengdataene er' << stringData << endl << endl ;
cout << 'Strengen konvertert til ByteArray her som er' << endl ;
byte ArrayOfBytes [ stringData. lengde ( ) ] ;
memcpy ( ArrayOfBytes , stringData. data ( ) , stringData. lengde ( ) ) ;
til ( konst byte & min_byte : ArrayOfBytes )
{
cout << til_heltall < int > ( min_byte ) << ', ' ;
}
komme tilbake 0 ;
}
Produksjon:
Dette resultatet gjengir den opprinnelige strengen og strengen som er transformert til en byte-array. Vi bruker kodens 'memcpy()'-metode for å transformere denne strengen til byte-arrayen.
Konklusjon
Vi lærte at byte-matriser i C++ tilbyr en tilnærming på lavt nivå for å arbeide effektivt med binære data. Vi utforsket at de gir oss kontroll over minnet og et grunnlag for oppgaver som serialisering, nettverk og databehandling på lavt nivå. I denne artikkelen utforsket vi konseptet med å deklarere og initialisere byte-matrisen i C++, samt konverteringen av strengen til byte-matrisen sammen med kodene deres.