C++ ByteArray

C Bytearray



Dalam C++, tatasusunan bait biasanya diwakili sebagai tatasusunan jenis data aksara yang tidak ditandatangani. Ia digunakan untuk memegang jujukan bait yang sering digunakan untuk melambangkan blok memori atau data binari. Kita juga boleh mentakrifkannya sebagai tatasusunan bait dalam C++, blok memori bersebelahan yang digunakan untuk menyimpan koleksi bait berurutan. Ia menyediakan cara yang fleksibel dan cekap untuk bekerja dengan data binari mentah. Dengan mewakili data sebagai bait, kami mempunyai kawalan yang tepat ke atas strukturnya dan boleh memanipulasinya pada tahap bait. Di sini, kami akan mencipta dan memulakan tatasusunan bait dan menukar rentetan kepada tatasusunan bait dalam artikel ini.

Contoh 1:

'iostream' disertakan di sini yang merupakan fail pengepala yang membantu dalam menggunakan fungsi untuk memasukkan atau mengeluarkan data. Di bawah ini, kami menggunakan ruang nama standard 'std' dan menggunakan 'main()'. Sekarang, dalam 'main()', kami mengisytiharkan tatasusunan bait nama 'mybyteArray[]' dengan jenis data 'unsigned char' dan juga memulakannya dengan lima elemen.

Kemudian, kami menggunakan 'cout' yang membantu menghasilkan data yang dikehendaki dan meletakkan gelung 'untuk'. Gelung 'untuk' ini membantu dalam mendapatkan unsur tatasusunan bait, dan 'cout' membantu dalam memberikan unsur tatasusunan bait ini bersama-sama dengan nombor perenambelasannya apabila kita meletakkan 'Array bait saya[' << i << “]” dan 'hex' dalam cout.







Kod 1:

#include

menggunakan ruang nama std ;

int utama ( ) {

tidak ditandatangani char mybyteArray [ ] = { 0x31 , 0x32 , 0x33 , 0x34 , 0x35 } ;

cout << 'Unsur tatasusunan bait ialah:' << endl ;

untuk ( int i = 0 ; i < saiz ( mybyteArray ) ; i ++ ) {

cout << 'Array byte saya[' << i << '] = ' << hex << ( int ) mybyteArray [ i ] << endl ;

}

kembali 0 ;

}

Pengeluaran:



Hasil kod dipaparkan di sini dan tatasusunan bait yang kami buat dalam kod sebelumnya kini dipaparkan.







Contoh 2:

Kod ini termasuk fail pengepala 'iostream' yang memudahkan data input atau output menggunakan fungsi tersebut. Di bawah ini, kami memanggil fungsi 'utama()' dan menggunakan ruang nama standard 'std'. Kami kemudian mengisytiharkan dan memulakan tatasusunan bait dengan nama 'byteA[]' dan jenis data 'unsigned char'. Kami memberikan enam elemen kepada tatasusunan bait ini dan kemudian menggunakan gelung 'untuk' untuk mengakses setiap elemen. Kami menggunakan 'cout' supaya nombor perenambelasan item dalam tatasusunan bait ini dipaparkan di bawah kerana kami memasukkan kedua-dua 'hex' dan 'byteArray[' << a << ']' di dalamnya.

Sekarang, kami menukar elemen tatasusunan bait ini dengan memberikan '0x11' kepada 'baitA[0]'. Kemudian, kami menetapkan '0x46' dan '0x77' kepada 'baitA[2]' dan 'baitA[4]', masing-masing. Kemudian, nilai ini diubah suai daripada tatasusunan bait yang kami buat. Selepas ini, kami menggunakan gelung 'untuk' sekali lagi untuk mengakses semua elemen tatasusunan bait dan 'cout' tambahan di bawah. Kini, nilai yang diubah suai dipaparkan di sini bersama dengan nombor perenambelasannya.



Kod 2:

#include

menggunakan ruang nama std ;

int utama ( ) {

tidak ditandatangani char baitA [ ] = { 0x21 , 0x22 , 0x23 , 0x24 , 0x25 , 0x26 } ;

cout << 'Mengakses elemen tatasusunan bait' << endl ;

untuk ( int a = 0 ; a < saiz ( baitA ) ; a ++ ) {

cout << 'Array byte[' << a << '] = ' << hex << ( int ) baitA [ a ] << endl ;

}

cout << ' \n Menukar elemen tatasusunan bait:' << endl ;

baitA [ 0 ] = 0x11 ;

baitA [ 2 ] = 0x46 ;

baitA [ 4 ] = 0x77 ;

untuk ( int a = 0 ; a < saiz ( baitA ) ; a ++ ) {

cout << 'Array byte[' << a << '] = ' << hex << ( int ) baitA [ a ] << endl ;

}

kembali 0 ;

}

Pengeluaran:

Tatasusunan bait yang kami buat dan tatasusunan diubah suai diberikan. Kami mengubah suai nilai tatasusunan bait ini dalam kod kami yang juga diberikan dalam hasil ini.

Contoh 3:

Di sini, kami menggunakan kaedah 'transform()' untuk menukar data rentetan kami ke dalam tatasusunan bait dalam kod ini. Fail pengepala 'iostream', 'cstddef', dan 'algoritma' disertakan dalam kod ini. Fail pengepala ini diimport supaya kita boleh menggunakan fungsi yang ditakrifkan di dalamnya dengan mudah. Di bawah ini, kami meletakkan ruang nama 'std' dan memanggil kaedah 'main()'. Kemudian, kami memulakan pembolehubah 'myString' jenis data 'rentetan' dengan 'Hello World'.

Sekarang, kami menambah 'cout' untuk memaparkan pernyataan yang diberikan. Di bawah ini, kami mencipta tatasusunan bait dengan saiz yang sama seperti 'myString.length()'. Selepas ini, kami menggunakan fungsi 'transform()' yang berulang ke atas aksara rentetan dan meletakkan 'const char& character' dan 'return byte(character)' yang menukar elemen rentetan kepada bait dan menyalinnya ke bait tatasusunan.

Selepas ini, kami menggunakan gelung 'untuk' di mana kami menambah 'const byte& byt: byteArray' yang berulang ke atas tatasusunan bait. Kemudian, kami menambah 'cout' yang memaparkan semua elemen yang ditukar kepada tatasusunan bait.

Kod 3:

#include

#include

#include

menggunakan ruang nama std ;

int utama ( )

{

rentetan myString = 'Hai dunia' ;

cout << 'Rentetan ialah' << myString << endl << endl ;

cout << 'Rentetan yang ditukar kepada ByteArray ialah ' << endl ;

byte byteArray [ myString. panjang ( ) ] ;

mengubah (

myString. bermula ( ) ,

myString. tamat ( ) ,

byteArray ,

[ ] ( const char & watak ) {

kembali bait ( watak ) ;

} ) ;

untuk ( const bait & sebuah flat : byteArray )

{

cout << to_integer < int > ( sebuah flat ) << ',' ;

}

cout << endl ;

kembali 0 ;

}

Pengeluaran:

Rentetan dan rentetan ditukar ke dalam tatasusunan bait kini diberikan dalam hasil ini. Kami menukar rentetan ini kepada tatasusunan bait menggunakan kaedah 'transform()' dalam kod kami.

Contoh 4:

Mari tukar data rentetan kami kepada tatasusunan bait menggunakan kaedah 'memcpy()' dalam kod ini. Kini, kod ini termasuk fail pengepala 'iostream', 'cstddef', dan 'algoritma'. Kami mengimport fail pengepala ini supaya kami boleh menggunakan fungsi yang diterangkan di dalamnya dengan mudah. Kami meletakkan ruang nama 'std' di bawah ini dan menggunakan fungsi 'main()' dari lokasi ini.

Seterusnya, kami memulakan 'Array Byte' dalam pembolehubah 'stringData'. Untuk menunjukkan pernyataan yang disediakan, kami kini memasukkan arahan 'cout'. Di bawahnya, tatasusunan bait dengan saiz yang sama seperti 'stringData.length()' dibina. Kami menggunakan kaedah 'memcpy()' dan lulus tiga parameter dalam fungsi ini iaitu 'ArrayOfBytes', 'stringData.data()', dan 'stringData.length()', masing-masing. Fungsi ini membantu dalam menyalin memori aksara rentetan ke tatasusunan bait yang kami nyatakan.

Berikutan ini, kami menggunakan gelung 'untuk' di mana kami menambah 'bait const& my_byte: ArrayOfBytes' untuk melintasi tatasusunan bait. Kemudian, kami menambah fungsi 'cout' yang menunjukkan setiap elemen yang telah diubah menjadi tatasusunan bait.

Kod 4:

#include

#include

#include

menggunakan ruang nama std ;

int utama ( )

{

rentetan stringData = 'Array Byte' ;

cout << 'Data rentetan ialah' << stringData << endl << endl ;

cout << 'Rentetan ditukar menjadi ByteArray di sini iaitu ' << endl ;

bait ArrayOfBytes [ stringData. panjang ( ) ] ;

memcpy ( ArrayOfBytes , stringData. data ( ) , stringData. panjang ( ) ) ;

untuk ( const bait & my_bait : ArrayOfBytes )

{

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

}



kembali 0 ;

}

Pengeluaran:

Hasil ini menjadikan rentetan asal dan rentetan yang diubah menjadi tatasusunan bait. Kami menggunakan kaedah 'memcpy()' kod kami untuk mengubah rentetan ini kepada tatasusunan bait.

Kesimpulan

Kami mengetahui bahawa tatasusunan bait dalam C++ menawarkan pendekatan peringkat rendah untuk bekerja dengan data binari dengan cekap. Kami meneroka bahawa mereka memberi kami kawalan ke atas memori dan asas untuk tugas seperti penyirian, rangkaian dan pemprosesan data peringkat rendah. Dalam artikel ini, kami meneroka konsep mengisytiharkan dan memulakan tatasusunan bait dalam C++ serta penukaran rentetan ke dalam tatasusunan bait bersama-sama dengan kodnya.