Ц++ БитеАрраи

C Bitearrai



У Ц++, низ бајтова је типично представљен као низ непотписаних цхар типова података. Користи се за чување секвенци бајтова које се често користе за симболизацију меморијских блокова или бинарних података. Такође можемо да га дефинишемо као низ бајтова у Ц++, непрекидни блок меморије који се користи за складиштење секвенцијалне колекције бајтова. Пружа флексибилан и ефикасан начин рада са сировим бинарним подацима. Представљајући податке као бајтове, имамо прецизну контролу над њиховом структуром и можемо њоме манипулисати на нивоу бајтова. Овде ћемо креирати и иницијализовати низ бајтова и конвертовати стринг у низ бајтова у овом чланку.

Пример 1:

Овде је укључен „иостреам“ који је датотека заглавља која помаже у коришћењу функција за унос или излаз података. Испод овога користимо стандардни простор имена „стд“ и позивамо „маин()“. Сада, у „маин()“, декларишемо низ бајтова са именом „мибитеАрраи[]“ са типом података „унсигнед цхар“ и такође га иницијализујемо са пет елемената.

Затим користимо „цоут“ који помаже у приказивању жељених података и постављању „фор“ петље. Ова петља 'фор' помаже у добијању елемената низа бајтова, а 'цоут' помаже у приказивању елемената овог низа бајтова заједно са њиховим хексадецималним бројевима док постављамо 'Ми битеАрраи[' << и << ']' и „хек“ у цоут.







Код 1:

#инцлуде <иостреам>

користећи простор имена стд ;

инт главни ( ) {

непотписан цхар мибитеАрраи [ ] = { 0к31 , 0к32 , 0к33 , 0к34 , 0к35 } ;

цоут << „Елементи низа бајтова су:“ << ендл ;

за ( инт и = 0 ; и < величина ( мибитеАрраи ) ; и ++ ) {

цоут << 'Мој бајтАрраи[' << и << '] = ' << хек << ( инт ) мибитеАрраи [ и ] << ендл ;

}

повратак 0 ;

}

Излаз:



Исход кода се приказује овде и сада се приказује низ бајтова који смо креирали у претходном коду.







Пример 2:

Овај код укључује датотеку заглавља „иостреам“ која олакшава унос или излаз података помоћу функција. Испод овога позивамо функцију „маин()“ и користимо стандардни именски простор „стд“. Затим декларишемо и иницијализујемо низ бајтова са именом „битеА[]” и типом података „унсигнед цхар”. Додељујемо шест елемената овом низу бајтова, а затим користимо петљу „фор“ за приступ сваком елементу. Користимо „цоут“ тако да су хексадецимални бројеви ставки у овом низу бајтова приказани испод јер у њега укључујемо и „хек“ и „битеАрраи[“ << а << „]“.

Сада мењамо елементе овог низа бајтова тако што ћемо „0к11“ доделити „битеА[0]“. Затим додељујемо „0к46“ и „0к77“ на „битеА[2]“ и „битеА[4]“, респективно. Затим се ове вредности модификују из низа бајтова који смо креирали. Након овога, поново користимо петљу „фор“ да приступимо свим елементима низа бајтова и додатом „цоут“ испод. Сада су измењене вредности приказане овде заједно са њиховим хексадецималним бројевима.



Код 2:

#инцлуде <иостреам>

користећи простор имена стд ;

инт главни ( ) {

непотписан цхар битеА [ ] = { 0к21 , 0к22 , 0к23 , 0к24 , 0к25 , 0к26 } ;

цоут << „Приступ елементима низа бајтова“ << ендл ;

за ( инт а = 0 ; а < величина ( битеА ) ; а ++ ) {

цоут << 'БитеАрраи[' << а << '] = ' << хек << ( инт ) битеА [ а ] << ендл ;

}

цоут << ' Промена елемената низа бајтова:' << ендл ;

битеА [ 0 ] = 0к11 ;

битеА [ 2 ] = 0к46 ;

битеА [ 4 ] = 0к77 ;

за ( инт а = 0 ; а < величина ( битеА ) ; а ++ ) {

цоут << 'БитеАрраи[' << а << '] = ' << хек << ( инт ) битеА [ а ] << ендл ;

}

повратак 0 ;

}

Излаз:

Низ бајтова који смо креирали и модификовани низ се приказују. Изменили смо вредности овог низа бајтова у нашем коду који је такође приказан у овом исходу.

Пример 3:

Овде користимо метод „трансформ()“ да конвертујемо наше податке стрингова у низ бајтова у овом коду. Датотеке заглавља „иостреам“, „цстддеф“ и „алгоритам“ укључене су у овај код. Ове датотеке заглавља се увозе тако да можемо лако да користимо функције које су у њима дефинисане. Испод овога постављамо „стд“ именски простор и позивамо метод „маин()“. Затим иницијализујемо променљиву „миСтринг“ типа података „стринг“ са „Хелло Ворлд“.

Сада додајемо „цоут“ да прикажемо дату изјаву. Испод овога креирамо низ бајтова исте величине као „миСтринг.ленгтх()“. Након овога, користимо функцију „трансформ()“ која понавља низ знакова и поставља „цонст цхар& цхарацтер“ и „ретурн бите(цхарацтер)“ који претвара елемент низа у бајтове и копира их у бајт низ.

После овога користимо петљу „фор“ где додајемо „цонст бите& бит: битеАрраи“ који се понавља преко низа бајтова. Затим додајемо „цоут“ који приказује све елементе који су конвертовани у низ бајтова.

Код 3:

#инцлуде <иостреам>

#инцлуде <цстддеф>

#инцлуде <алгоритам>

користећи простор имена стд ;

инт главни ( )

{

стринг миСтринг = 'Здраво Свете' ;

цоут << 'Стринг је' << миСтринг << ендл << ендл ;

цоут << „Конвертовани стринг у БитеАрраи је „ << ендл ;

бите битеАрраи [ миСтринг. дужина ( ) ] ;

преобразити (

миСтринг. започети ( ) ,

миСтринг. крај ( ) ,

битеАрраи ,

[ ] ( конст цхар & карактера ) {

повратак бајт ( карактера ) ;

} ) ;

за ( конст бајт & стан : битеАрраи )

{

цоут << то_интегер < инт > ( стан ) << ', ' ;

}

цоут << ендл ;

повратак 0 ;

}

Излаз:

Стринг и конвертовани стринг у низ бајтова сада се приказују у овом исходу. Конвертовали смо овај стринг у низ бајтова користећи метод „трансформ()“ у нашем коду.

Пример 4:

Хајде да претворимо наше стринг податке у низ бајтова користећи методу „мемцпи()“ у овом коду. Сада, овај код укључује датотеке заглавља „иостреам“, „цстддеф“ и „алгоритам“. Ми увозимо ове датотеке заглавља тако да можемо са лакоћом да користимо функције које су у њима описане. Постављамо „стд“ именски простор испод овога и позивамо функцију „маин()“ са ове локације.

Затим иницијализујемо „Бите Арраи“ у променљивој „стрингДата“. Да бисмо приказали дату изјаву, сада укључујемо команду „цоут“. Испод тога је конструисан низ бајтова исте величине као „стрингДата.ленгтх()“. Користимо метод „мемцпи()“ и прослеђујемо три параметра у овој функцији, а то су „АрраиОфБитес“, „стрингДата.дата()“ и „стрингДата.ленгтх()“, респективно. Ова функција помаже у копирању меморије карактера стринга у низ бајтова који смо декларирали.

Након овога, користимо петљу „фор“ у коју додајемо „цонст бите& ми_бите: АрраиОфБитес“ да бисмо прешли низ бајтова. Затим додамо функцију „цоут“ која приказује сваки елемент који је трансформисан у низ бајтова.

Код 4:

#инцлуде <иостреам>

#инцлуде <цстддеф>

#инцлуде <цстринг>

користећи простор имена стд ;

инт главни ( )

{

стринг стрингДата = 'Низ бајтова' ;

цоут << „Подаци низа су“ << стрингДата << ендл << ендл ;

цоут << 'Стринг конвертован у БитеАрраи овде који је ' << ендл ;

бите АрраиОфБитес [ стрингДата. дужина ( ) ] ;

мемцпи ( АрраиОфБитес , стрингДата. података ( ) , стрингДата. дужина ( ) ) ;

за ( конст бајт & ми_бите : АрраиОфБитес )

{

цоут << то_интегер < инт > ( ми_бите ) << ', ' ;

}



повратак 0 ;

}

Излаз:

Овај резултат приказује оригинални стринг и стринг који је трансформисан у низ бајтова. Користимо метод „мемцпи()“ нашег кода да трансформишемо овај стринг у низ бајтова.

Закључак

Сазнали смо да низови бајтова у Ц++ нуде приступ ниског нивоа за ефикасан рад са бинарним подацима. Истражили смо да нам они пружају контролу над меморијом и основу за задатке попут серијализације, умрежавања и обраде података ниског нивоа. У овом чланку смо истражили концепт декларисања и иницијализације низа бајтова у Ц++, као и конверзију стринга у низ бајтова заједно са њиховим кодовима.