C++ ByteArray

C Bytearray



C++:ssa tavutaulukko esitetään tyypillisesti etumerkittömien merkkitietotyyppien joukkona. Sitä käytetään pitämään tavusekvenssit, joita käytetään usein symboloimaan muistilohkoja tai binääritietoja. Voimme myös määritellä sen tavutaulukoksi C++:ssa, jatkuvana muistilohkona, jota käytetään tallentamaan peräkkäinen tavukokoelma. Se tarjoaa joustavan ja tehokkaan tavan käsitellä raakaa binaaridataa. Esittämällä tiedot tavuina, hallitsemme tarkasti sen rakennetta ja voimme käsitellä sitä tavutasolla. Täällä luomme ja alustamme tavutaulukon ja muunnamme merkkijonon tavutaulukoksi tässä artikkelissa.

Esimerkki 1:

'iostream' sisältyy tähän, joka on otsikkotiedosto, joka auttaa käyttämään toimintoja tietojen syöttämiseen tai tulostamiseen. Tämän alla käytämme standardinimiavaruutta 'std' ja kutsumme 'main()'. Nyt 'main()' -kohdassa julistamme tavutaulukon nimeltä 'mybyteArray[]', jossa on 'unsigned char' -tietotyyppi, ja alustamme sen myös viidellä elementillä.

Sitten käytämme 'cout', joka auttaa hahmontamaan halutut tiedot ja sijoittamaan 'for' -silmukan. Tämä 'for' -silmukka auttaa saamaan tavutaulukon elementit, ja 'cout' auttaa hahmottamaan tämän tavutaulukon elementit yhdessä niiden heksadesimaalilukujen kanssa, kun asetamme 'My byteArray[' << i << ']' ja 'hex' in cout.







Koodi 1:

#include

käyttäen nimiavaruutta std ;

int pää ( ) {

allekirjoittamaton hiiltyä mybyteArray [ ] = { 0x31 , 0x32 , 0x33 , 0x34 , 0x35 } ;

cout << 'Tavutaulukon elementit ovat:' << endl ;

varten ( int i = 0 ; i < koko ( mybyteArray ) ; i ++ ) {

cout << 'Oma byteArray[' << i << '] = ' << hex << ( int ) mybyteArray [ i ] << endl ;

}

palata 0 ;

}

Lähtö:



Koodin tulos renderöidään tässä ja edellisessä koodissa luomamme tavutaulukko näytetään nyt.







Esimerkki 2:

Tämä koodi sisältää 'iostream'-otsikkotiedoston, joka helpottaa tietojen syöttämistä tai tulostusta funktioiden avulla. Tämän alapuolella kutsumme 'main()'-funktiota ja käytämme 'std'-standardin nimiavaruutta. Ilmoitamme ja alustamme sitten tavutaulukon nimellä 'byteA[]' ja 'unsigned char' -tietotyypillä. Määritämme kuusi elementtiä tähän tavutaulukkoon ja käytämme sitten 'for'-silmukkaa päästäksemme jokaiseen elementtiin. Käytämme 'cout', joten tämän tavutaulukon kohteiden heksadesimaaliluvut näytetään alla, koska sisällytämme siihen sekä 'hex'- että 'byteArray[' << a << ']'.

Nyt muutamme tämän tavutaulukon elementtejä määrittämällä '0x11' arvoon 'byteA[0]'. Sitten määritämme '0x46' ja '0x77' kohteiksi 'byteA[2]' ja 'byteA[4]'. Sitten näitä arvoja muutetaan luomastamme tavutaulukosta. Tämän jälkeen käytämme uudelleen 'for' -silmukkaa päästäksemme kaikkiin tavutaulukon elementteihin ja alla olevaan lisättyyn 'cout'. Nyt muokatut arvot esitetään tässä yhdessä niiden heksadesimaalilukujen kanssa.



Koodi 2:

#include

käyttäen nimiavaruutta std ;

int pää ( ) {

allekirjoittamaton hiiltyä tavuA [ ] = { 0x21 , 0x22 , 0x23 , 0x24 , 0x25 , 0x26 } ;

cout << 'Tavutaulukon elementtien käyttö' << endl ;

varten ( int a = 0 ; a < koko ( tavuA ) ; a ++ ) {

cout << 'The byteArray[' << a << '] = ' << hex << ( int ) tavuA [ a ] << endl ;

}

cout << ' \n Tavutaulukon elementtien muuttaminen:' << endl ;

tavuA [ 0 ] = 0x11 ;

tavuA [ 2 ] = 0x46 ;

tavuA [ 4 ] = 0x77 ;

varten ( int a = 0 ; a < koko ( tavuA ) ; a ++ ) {

cout << 'The byteArray[' << a << '] = ' << hex << ( int ) tavuA [ a ] << endl ;

}

palata 0 ;

}

Lähtö:

Luomamme tavutaulukko ja muokattu taulukko hahmonnetaan. Muutimme tämän tavutaulukon arvoja koodissamme, joka myös hahmonnetaan tässä tuloksessa.

Esimerkki 3:

Tässä käytämme 'transform()' -menetelmää merkkijonotietomme muuntamiseen tämän koodin tavutaulukoksi. Otsikkotiedostot 'iostream', 'cstddef' ja 'algoritmi' sisältyvät tähän koodiin. Nämä otsikkotiedostot tuodaan, jotta voimme helposti hyödyntää niissä määriteltyjä toimintoja. Tämän alle sijoitamme 'std'-nimiavaruuden ja kutsumme 'main()'-menetelmää. Sitten alustamme 'merkkijono'-tietotyypin 'myString' muuttujan 'Hello World'.

Nyt lisäämme 'cout' näyttääksesi annetun lausunnon. Tämän alle luomme tavutaulukon, joka on samankokoinen kuin 'myString.length()'. Tämän jälkeen hyödynnämme 'transform()'-funktiota, joka toistuu merkkijonon merkkien yli ja asetamme 'const char& character' ja 'return byte(character)', joka muuntaa merkkijonon elementin tavuiksi ja kopioi ne tavuksi. joukko.

Tämän jälkeen käytämme 'for' -silmukkaa, johon lisäämme 'const byte& byt: byteArray', joka toistuu tavutaulukon yli. Sitten lisäämme 'cout', joka näyttää kaikki elementit, jotka on muunnettu tavutaulukkoon.

Koodi 3:

#include

#include

#include

käyttäen nimiavaruutta std ;

int pää ( )

{

merkkijono myString = 'Hei maailma' ;

cout << 'merkkijono on' << myString << endl << endl ;

cout << 'ByteArrayksi muunnettu merkkijono on' << endl ;

tavu byteArray [ myString. pituus ( ) ] ;

muuttaa (

myString. alkaa ( ) ,

myString. loppu ( ) ,

byteArray ,

[ ] ( konst hiiltyä & merkki ) {

palata tavu ( merkki ) ;

} ) ;

varten ( konst tavu & Kämppä : byteArray )

{

cout << to_integer < int > ( Kämppä ) << ', ' ;

}

cout << endl ;

palata 0 ;

}

Lähtö:

Merkkijono ja tavutaulukoksi muunnettu merkkijono hahmonnetaan nyt tässä tuloksessa. Muunsimme tämän merkkijonon tavutaulukoksi käyttämällä koodimme 'transform()'-menetelmää.

Esimerkki 4:

Muutetaan merkkijonotietomme tavutaulukoksi käyttämällä 'memcpy()' -menetelmää tässä koodissa. Nyt tämä koodi sisältää otsikkotiedostot 'iostream', 'cstddef' ja 'algoritmi'. Tuomme nämä otsikkotiedostot, jotta voimme käyttää niissä kuvattuja toimintoja helposti. Sijoitamme 'std'-nimiavaruuden tämän alle ja kutsumme 'main()'-funktion tästä paikasta.

Seuraavaksi alustamme 'Byte Array' -muuttujan 'stringData'. Toimitetun lausunnon näyttämiseksi sisällytämme nyt 'cout'-komennon. Sen alle rakennetaan tavutaulukko, jonka koko on sama kuin 'stringData.length()'. Käytämme 'memcpy()'-menetelmää ja välitämme tässä funktiossa kolme parametria, jotka ovat 'ArrayOfBytes', 'stringData.data()' ja 'stringData.length()'. Tämä toiminto auttaa kopioimaan merkkijonon muistin ilmoittamaamme tavutaulukkoon.

Tämän jälkeen käytämme 'for'-silmukkaa, johon lisäämme 'const byte& my_byte: ArrayOfBytes' kulkeaksemme tavutaulukon yli. Sen jälkeen lisäämme cout-funktion, joka näyttää jokaisen elementin, joka on muunnettu tavutaulukkoon.

Koodi 4:

#include

#include

#include

käyttäen nimiavaruutta std ;

int pää ( )

{

merkkijono stringData = 'tavutaulukko' ;

cout << 'merkkijonotiedot ovat' << stringData << endl << endl ;

cout << 'Tässä oleva merkkijono muutettu ByteArrayksi, joka on' << endl ;

tavu ArrayOfBytes [ stringData. pituus ( ) ] ;

memcpy ( ArrayOfBytes , stringData. tiedot ( ) , stringData. pituus ( ) ) ;

varten ( konst tavu & my_byte : ArrayOfBytes )

{

cout << to_integer < int > ( my_byte ) << ', ' ;

}



palata 0 ;

}

Lähtö:

Tämä tulos tekee alkuperäisen merkkijonon ja merkkijonon, joka muunnetaan tavutaulukoksi. Käytämme koodimme 'memcpy()' -menetelmää muuttaaksemme tämän merkkijonon tavutaulukoksi.

Johtopäätös

Opimme, että C++:n tavutaulukot tarjoavat matalan tason tavan työskennellä binaaridatan kanssa tehokkaasti. Selvitimme, että ne tarjoavat meille muistin hallinnan ja perustan sellaisille tehtäville kuin sarjoittaminen, verkottaminen ja matalan tason tietojenkäsittely. Tässä artikkelissa tutkimme tavutaulukon ilmoittamisen ja alustamisen käsitettä C++:ssa sekä merkkijonon muuntamista tavutaulukoksi niiden koodien kanssa.