ตัวอย่างที่ 1:
“iostream” รวมอยู่ที่นี่ซึ่งเป็นไฟล์ส่วนหัวที่ช่วยในการใช้ฟังก์ชันในการป้อนข้อมูลหรือส่งออกข้อมูล ด้านล่างนี้ เราใช้เนมสเปซมาตรฐาน “std” และเรียกใช้ “main()” ในตอนนี้ ใน “main()” เราประกาศอาร์เรย์ไบต์ของชื่อ “mybyteArray[]” ด้วยประเภทข้อมูล “unsigned char” และยังเริ่มต้นด้วยองค์ประกอบห้าองค์ประกอบด้วย
จากนั้น เราใช้ 'cout' ซึ่งจะช่วยเรนเดอร์ข้อมูลที่ต้องการและวางลูป 'for' การวนซ้ำ 'for' นี้ช่วยในการรับองค์ประกอบของอาร์เรย์ไบต์ และ 'cout' ช่วยในการเรนเดอร์องค์ประกอบของอาร์เรย์ไบต์นี้พร้อมกับเลขฐานสิบหกในขณะที่เราวาง 'My byteArray[' << i << ']' และ 'hex' ในศาล
รหัส 1:
#รวมใช้เนมสเปซมาตรฐาน -
ภายใน หลัก - - -
ไม่ได้ลงนาม ถ่าน mybyteArray - - - - 0x31 - 0x32 - 0x33 - 0x34 - 0x35 - -
ศาล - 'องค์ประกอบของอาร์เรย์ไบต์คือ:' - สิ้นสุด -
สำหรับ - ภายใน ฉัน - 0 - ฉัน - ขนาดของ - mybyteArray - - ฉัน - - -
ศาล - 'byteArray ของฉัน [' - ฉัน - - - ฐานสิบหก - - ภายใน - mybyteArray - ฉัน - - สิ้นสุด -
-
กลับ 0 -
-
เอาท์พุท:
ผลลัพธ์ของโค้ดจะแสดงผลที่นี่ และอาร์เรย์ไบต์ที่เราสร้างในโค้ดก่อนหน้าก็จะปรากฏขึ้น
ตัวอย่างที่ 2:
โค้ดนี้ประกอบด้วยไฟล์ส่วนหัว 'iostream' ซึ่งอำนวยความสะดวกในการป้อนข้อมูลหรือเอาต์พุตโดยใช้ฟังก์ชันต่างๆ ด้านล่างนี้ เราเรียกฟังก์ชัน 'main()' และใช้เนมสเปซมาตรฐาน 'std' จากนั้นเราจะประกาศและเริ่มต้นอาร์เรย์ไบต์ด้วยชื่อ “byteA[]” และประเภทข้อมูล “char ที่ไม่ได้ลงนาม” เรากำหนดองค์ประกอบหกรายการให้กับอาร์เรย์ไบต์นี้ จากนั้นใช้ลูป 'for' เพื่อเข้าถึงแต่ละองค์ประกอบ เราใช้ “cout” ดังนั้นเลขฐานสิบหกของรายการในอาร์เรย์ไบต์นี้จะแสดงอยู่ด้านล่าง เนื่องจากเรารวมทั้ง “hex” และ ” byteArray[” << a << “]” ไว้ด้วย
ตอนนี้เราเปลี่ยนองค์ประกอบของอาร์เรย์ไบต์นี้โดยกำหนด '0x11' ให้กับ 'byteA[0]' จากนั้นเรากำหนด '0x46' และ '0x77' ให้กับ 'byteA[2]' และ 'byteA[4]' ตามลำดับ จากนั้นค่าเหล่านี้จะถูกแก้ไขจากอาร์เรย์ไบต์ที่เราสร้างขึ้น หลังจากนี้ เราจะใช้ลูป 'for' อีกครั้งเพื่อเข้าถึงองค์ประกอบทั้งหมดของอาร์เรย์ไบต์และ 'cout' ที่เพิ่มเข้ามาด้านล่าง ตอนนี้ ค่าที่แก้ไขจะแสดงที่นี่พร้อมกับเลขฐานสิบหก
รหัส 2:
#รวมใช้เนมสเปซมาตรฐาน -
ภายใน หลัก - - -
ไม่ได้ลงนาม ถ่าน ไบต์เอ - - - - 0x21 - 0x22 - 0x23 - 0x24 - 0x25 - 0x26 - -
ศาล - 'การเข้าถึงองค์ประกอบของอาร์เรย์ไบต์' - สิ้นสุด -
สำหรับ - ภายใน ก - 0 - ก - ขนาดของ - ไบต์เอ - - ก - - -
ศาล - 'ไบต์อาร์เรย์[' - ก - - - ฐานสิบหก - - ภายใน - ไบต์เอ - ก - - สิ้นสุด -
-
ศาล - - \n การเปลี่ยนองค์ประกอบของอาร์เรย์ไบต์:' - สิ้นสุด -
ไบต์เอ - 0 - - 0x11 -
ไบต์เอ - 2 - - 0x46 -
ไบต์เอ - 4 - - 0x77 -
สำหรับ - ภายใน ก - 0 - ก - ขนาดของ - ไบต์เอ - - ก - - -
ศาล - 'ไบต์อาร์เรย์[' - ก - - - ฐานสิบหก - - ภายใน - ไบต์เอ - ก - - สิ้นสุด -
-
กลับ 0 -
-
เอาท์พุท:
อาร์เรย์ไบต์ที่เราสร้างขึ้นและอาร์เรย์ที่แก้ไขจะแสดงผล เราได้แก้ไขค่าของอาร์เรย์ไบต์นี้ในโค้ดของเราซึ่งแสดงผลในผลลัพธ์นี้ด้วย
ตัวอย่างที่ 3:
ที่นี่เราใช้เมธอด 'transform()' เพื่อแปลงข้อมูลสตริงของเราให้เป็นอาร์เรย์ไบต์ในโค้ดนี้ ไฟล์ส่วนหัว “iostream”, “cstddef” และ “อัลกอริทึม” รวมอยู่ในโค้ดนี้ ไฟล์ส่วนหัวเหล่านี้ถูกนำเข้าเพื่อให้เราสามารถใช้ฟังก์ชันที่กำหนดไว้ได้อย่างง่ายดาย ข้างใต้นี้ เราวางเนมสเปซ 'std' และเรียกใช้เมธอด 'main()' จากนั้นเราเริ่มต้นตัวแปร “myString” ของประเภทข้อมูล “string” ด้วย “Hello World”
ตอนนี้เราเพิ่ม 'cout' เพื่อแสดงคำสั่งที่กำหนด ด้านล่างนี้ เราสร้างอาร์เรย์ไบต์ที่มีขนาดเดียวกับ 'myString.length()' หลังจากนี้ เราใช้ฟังก์ชัน 'transform()' ซึ่งจะวนซ้ำอักขระสตริงและวาง 'const char& character' และ 'return byte(อักขระ)' ซึ่งจะแปลงองค์ประกอบของสตริงให้เป็นไบต์และคัดลอกไปยังไบต์ อาร์เรย์
หลังจากนี้ เราใช้ลูป 'for' โดยที่เราเพิ่ม 'const byte& byte: byteArray' ซึ่งจะวนซ้ำบนอาร์เรย์ไบต์ จากนั้นเราเพิ่ม 'cout' ซึ่งแสดงองค์ประกอบทั้งหมดที่แปลงเป็นอาร์เรย์ไบต์
รหัส 3:
#รวม#รวม
#รวม <อัลกอริทึม>
ใช้เนมสเปซมาตรฐาน -
ภายใน หลัก - -
-
สตริง myString - 'สวัสดีชาวโลก' -
ศาล - “สายคือ” - myString - สิ้นสุด - สิ้นสุด -
ศาล - 'สตริงที่แปลงเป็น ByteArray คือ ' - สิ้นสุด -
ไบต์ byteArray - myString. ความยาว - - - -
แปลง -
myString. เริ่ม - - -
myString. จบ - - -
byteArray -
- - - ค่าคงที่ ถ่าน - อักขระ - -
กลับ ไบต์ - อักขระ - -
- - -
สำหรับ - ค่าคงที่ ไบต์ - แบน - byteArray -
-
ศาล - ถึง_จำนวนเต็ม - ภายใน - - แบน - - - -
-
ศาล - สิ้นสุด -
กลับ 0 -
-
เอาท์พุท:
ขณะนี้สตริงและสตริงที่แปลงเป็นอาร์เรย์ไบต์จะแสดงผลในผลลัพธ์นี้ เราแปลงสตริงนี้เป็นอาร์เรย์ไบต์โดยใช้วิธี 'transform()' ในโค้ดของเรา
ตัวอย่างที่ 4:
มาเปลี่ยนข้อมูลสตริงของเราให้เป็นอาร์เรย์ไบต์โดยใช้วิธี 'memcpy()' ในโค้ดนี้ ตอนนี้โค้ดนี้รวมไฟล์ส่วนหัว 'iostream', 'cstddef' และ 'algorithm' เรานำเข้าไฟล์ส่วนหัวเหล่านี้เพื่อให้เราสามารถใช้ฟังก์ชันที่อธิบายไว้ในไฟล์เหล่านี้ได้อย่างง่ายดาย เราวางตำแหน่งเนมสเปซ 'std' ไว้ใต้สิ่งนี้และเรียกใช้ฟังก์ชัน 'main()' จากตำแหน่งนี้
ต่อไป เราจะเริ่มต้น 'Byte Array' ในตัวแปร 'stringData' เพื่อแสดงคำสั่งที่ให้มา ตอนนี้เรารวมคำสั่ง “cout” ไว้ด้วย ข้างใต้นั้น อาร์เรย์ไบต์ที่มีขนาดเท่ากับ “stringData.length()” จะถูกสร้างขึ้น เราใช้เมธอด “memcpy()” และส่งพารามิเตอร์สามตัวในฟังก์ชันนี้ ได้แก่ “ArrayOfBytes”, “stringData.data()” และ “stringData.length()” ตามลำดับ ฟังก์ชั่นนี้ช่วยในการคัดลอกหน่วยความจำของอักขระของสตริงไปยังอาร์เรย์ไบต์ที่เราประกาศ
ต่อไปนี้ เราใช้ลูป 'for' ซึ่งเราเพิ่ม 'const byte& my_byte: ArrayOfBytes' เพื่อสำรวจผ่านอาร์เรย์ไบต์ จากนั้น เราเพิ่มฟังก์ชัน 'cout' ซึ่งแสดงทุกองค์ประกอบที่ถูกแปลงเป็นอาร์เรย์ไบต์
รหัส 4:
#รวม#รวม
#รวม
ใช้เนมสเปซมาตรฐาน -
ภายใน หลัก - -
-
สตริง stringData - 'ไบต์อาร์เรย์' -
ศาล - 'ข้อมูลสตริงคือ' - stringData - สิ้นสุด - สิ้นสุด -
ศาล - 'สตริงที่แปลงเป็น ByteArray ที่นี่ซึ่งก็คือ ' - สิ้นสุด -
ไบต์ ArrayOfBytes - stringData. ความยาว - - - -
เมมปี้ - อาร์เรย์ของไบต์ - stringData. ข้อมูล - - - stringData. ความยาว - - - -
สำหรับ - ค่าคงที่ ไบต์ - my_byte - อาร์เรย์ของไบต์ -
-
ศาล - ถึง_จำนวนเต็ม - ภายใน - - my_byte - - - -
-
กลับ 0 -
-
เอาท์พุท:
ผลลัพธ์นี้แสดงสตริงดั้งเดิมและสตริงที่ถูกแปลงเป็นอาร์เรย์ไบต์ เราใช้เมธอด 'memcpy()' ของโค้ดเพื่อแปลงสตริงนี้เป็นอาร์เรย์ไบต์
บทสรุป
เราได้เรียนรู้ว่าอาร์เรย์ไบต์ใน C++ นำเสนอแนวทางระดับต่ำในการทำงานกับข้อมูลไบนารีอย่างมีประสิทธิภาพ เราสำรวจว่าสิ่งเหล่านี้ทำให้เราสามารถควบคุมหน่วยความจำและเป็นรากฐานสำหรับงานต่างๆ เช่น การทำให้เป็นอนุกรม การสร้างเครือข่าย และการประมวลผลข้อมูลระดับต่ำ ในบทความนี้ เราได้สำรวจแนวคิดในการประกาศและเริ่มต้นอาร์เรย์ไบต์ในภาษา C++ รวมถึงการแปลงสตริงให้เป็นอาร์เรย์ไบต์พร้อมกับโค้ดของพวกเขา