Przykład 1:
Zawarty jest tutaj plik „iostream”, który jest plikiem nagłówkowym pomagającym w korzystaniu z funkcji wprowadzania i wysyłania danych. Poniżej używamy standardowej przestrzeni nazw „std” i wywołujemy „main()”. Teraz w „main()” deklarujemy tablicę bajtową o nazwie „mybyteArray[]” z typem danych „unsigned char” i inicjujemy ją również pięcioma elementami.
Następnie używamy „cout”, które pomaga wyrenderować żądane dane i umieścić pętlę „for”. Ta pętla „for” pomaga w pobraniu elementów tablicy bajtów, a „cout” pomaga w renderowaniu elementów tej tablicy bajtów wraz z ich liczbami szesnastkowymi podczas umieszczania „My byteArray[” << i << „]” i „hex” w cout.
Kod 1:
#includeużywając przestrzeni nazw std ;
wew główny ( ) {
niepodpisany zwęglać mojabajtArray [ ] = { 0x31 , 0x32 , 0x33 , 0x34 , 0x35 } ;
cout << „Elementy tablicy bajtów to:” << koniec ;
Do ( wew I = 0 ; I < rozmiar ( mojabajtArray ) ; I ++ ) {
cout << „Moja tablica bajtów[” << I << '] = ' << klątwa << ( wew ) mojabajtArray [ I ] << koniec ;
}
powrót 0 ;
}
Wyjście:
Wynik kodu jest tutaj renderowany i wyświetlana jest teraz tablica bajtów, którą utworzyliśmy w poprzednim kodzie.
Przykład 2:
Kod ten zawiera plik nagłówkowy „iostream”, który ułatwia wprowadzanie i wysyłanie danych za pomocą funkcji. Poniżej wywołujemy funkcję „main()” i używamy standardowej przestrzeni nazw „std”. Następnie deklarujemy i inicjujemy tablicę bajtową o nazwie „byteA[]” i typie danych „unsigned char”. Przypisujemy sześć elementów do tej tablicy bajtów, a następnie wykorzystujemy pętlę „for”, aby uzyskać dostęp do każdego elementu. Używamy „cout”, aby liczby szesnastkowe elementów tej tablicy bajtów były wyświetlane poniżej, ponieważ uwzględniamy w niej zarówno „hex”, jak i „byteArray[” << a << „]”.
Teraz zmieniamy elementy tej tablicy bajtów, przypisując „0x11” do „byteA[0]”. Następnie przypisujemy „0x46” i „0x77” odpowiednio do „byteA[2]” i „byteA[4]”. Następnie wartości te są modyfikowane na podstawie utworzonej przez nas tablicy bajtów. Następnie ponownie używamy pętli „for”, aby uzyskać dostęp do wszystkich elementów tablicy bajtów i dodanego poniżej „cout”. Teraz zmodyfikowane wartości są tutaj renderowane wraz z ich liczbami szesnastkowymi.
Kod 2:
#includeużywając przestrzeni nazw std ;
wew główny ( ) {
niepodpisany zwęglać bajtA [ ] = { 0x21 , 0x22 , 0x23 , 0x24 , 0x25 , 0x26 } ;
cout << „Dostęp do elementów tablicy bajtów” << koniec ;
Do ( wew A = 0 ; A < rozmiar ( bajtA ) ; A ++ ) {
cout << „Tablica bajtów[” << A << '] = ' << klątwa << ( wew ) bajtA [ A ] << koniec ;
}
cout << ' \N Zmiana elementów tablicy bajtów:” << koniec ;
bajtA [ 0 ] = 0x11 ;
bajtA [ 2 ] = 0x46 ;
bajtA [ 4 ] = 0x77 ;
Do ( wew A = 0 ; A < rozmiar ( bajtA ) ; A ++ ) {
cout << „Tablica bajtów[” << A << '] = ' << klątwa << ( wew ) bajtA [ A ] << koniec ;
}
powrót 0 ;
}
Wyjście:
Utworzona przez nas tablica bajtów i zmodyfikowana tablica są renderowane. Zmodyfikowaliśmy wartości tej tablicy bajtów w naszym kodzie, który jest również renderowany w tym wyniku.
Przykład 3:
Tutaj używamy metody „transform()”, aby przekonwertować nasze dane w postaci ciągu znaków na tablicę bajtów w tym kodzie. Pliki nagłówkowe „iostream”, „cstddef” i „algorithm” są zawarte w tym kodzie. Te pliki nagłówkowe są importowane, dzięki czemu możemy łatwo korzystać z funkcji, które są w nich zdefiniowane. Poniżej umieszczamy przestrzeń nazw „std” i wywołujemy metodę „main()”. Następnie inicjujemy zmienną „myString” typu danych „string” wartością „Hello World”.
Teraz dodajemy „cout”, aby wyświetlić daną instrukcję. Poniżej tworzymy tablicę bajtów o tym samym rozmiarze co „myString.length()”. Następnie używamy funkcji „transform()”, która iteruje po znakach ciągu i umieszcza „const char&znak” oraz „return byte(character)”, które konwertują element ciągu na bajty i kopiują je do bajtu szyk.
Następnie używamy pętli „for”, do której dodajemy „const byte& byt: byteArray”, która iteruje po tablicy bajtów. Następnie dodajemy „cout”, który wyświetla wszystkie elementy konwertowane na tablicę bajtów.
Kod 3:
#include#include
#include
używając przestrzeni nazw std ;
wew główny ( )
{
ciąg mójString = 'Witaj świecie' ;
cout << „Sznurek jest” << mójString << koniec << koniec ;
cout << „Przekonwertowany ciąg znaków na ByteArray to” << koniec ;
bajt bajtArray [ mójString. długość ( ) ] ;
przekształcać (
mójString. zaczynać ( ) ,
mójString. koniec ( ) ,
tablica bajtów ,
[ ] ( konst zwęglać & postać ) {
powrót bajt ( postać ) ;
} ) ;
Do ( konst bajt & mieszkanie : tablica bajtów )
{
cout << to_integer < wew > ( mieszkanie ) << „”, „ ;
}
cout << koniec ;
powrót 0 ;
}
Wyjście:
W tym wyniku renderowany jest teraz ciąg znaków i ciąg przekonwertowany na tablicę bajtów. Przekonwertowaliśmy ten ciąg na tablicę bajtów za pomocą metody „transform()” w naszym kodzie.
Przykład 4:
Zamieńmy nasze dane w formie ciągów znaków w tablicę bajtów, używając metody „memcpy()” w tym kodzie. Teraz ten kod zawiera pliki nagłówkowe „iostream”, „cstddef” i „algorithm”. Importujemy te pliki nagłówkowe, abyśmy mogli z łatwością korzystać z opisanych w nich funkcji. Umieszczamy pod nią przestrzeń nazw „std” i z tej lokalizacji wywołujemy funkcję „main()”.
Następnie inicjujemy „Byte Array” w zmiennej „stringData”. Aby wyświetlić dostarczoną instrukcję, dodaliśmy teraz polecenie „cout”. Poniżej konstruowana jest tablica bajtów o tym samym rozmiarze co „stringData.length()”. Korzystamy z metody „memcpy()” i przekazujemy w tej funkcji trzy parametry, odpowiednio „ArrayOfBytes”, „stringData.data()” i „stringData.length()”. Funkcja ta pomaga w kopiowaniu pamięci znaku ciągu do zadeklarowanej przez nas tablicy bajtów.
Następnie używamy pętli „for”, w której dodajemy „const byte& my_byte: ArrayOfBytes”, aby przechodzić przez tablicę bajtów. Następnie dodajemy funkcję „cout”, która pokazuje każdy element, który został przekształcony w tablicę bajtów.
Kod 4:
#include#include
#include
używając przestrzeni nazw std ;
wew główny ( )
{
ciąg ciągDane = „Tablica bajtów” ;
cout << „Dane ciągu to” << dane ciągu << koniec << koniec ;
cout << „Tutaj ciąg znaków przekonwertowany na tablicę ByteArray, czyli „ << koniec ;
bajt ArrayOfBytes [ dane ciągu. długość ( ) ] ;
memcpy ( TablicaOfBytes , dane ciągu. dane ( ) , dane ciągu. długość ( ) ) ;
Do ( konst bajt & mój_bajt : TablicaOfBytes )
{
cout << to_integer < wew > ( mój_bajt ) << „”, „ ;
}
powrót 0 ;
}
Wyjście:
Wynik ten renderuje oryginalny ciąg i ciąg, który jest przekształcany w tablicę bajtów. Używamy metody „memcpy()” naszego kodu, aby przekształcić ten ciąg znaków w tablicę bajtów.
Wniosek
Dowiedzieliśmy się, że tablice bajtowe w C++ oferują niskopoziomowe podejście do wydajnej pracy z danymi binarnymi. Zbadaliśmy, że zapewniają nam kontrolę nad pamięcią i stanowią podstawę zadań takich jak serializacja, tworzenie sieci i przetwarzanie danych niskiego poziomu. W tym artykule zbadaliśmy koncepcję deklarowania i inicjowania tablicy bajtów w C++, a także konwersji ciągu znaków na tablicę bajtów wraz z ich kodami.