Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,895 questions

51,826 answers

573 users

How to XOR byte vectors in C++

2 Answers

0 votes
#include <iostream>
#include <cstdint>
#include <vector>
#include <bitset>

int main() {
    std::vector<uint8_t> a{'A', 'e', 'r', 'y', 'n'};
    std::vector<uint8_t> b{'A', 'l', 'b', 'u', 's'};

    std::vector<uint8_t> c(a.size());
    for (size_t i = 0; i < a.size(); ++i) {
        c[i] = a[i] ^ b[i];
    }

    std::cout << "a: ";
    for (auto ch : a)
        std::cout << std::bitset<8>(ch) << ' ';
    std::cout << "\nb: ";
    for (auto ch : b)
        std::cout << std::bitset<8>(ch) << ' ';
    std::cout << "\nc: ";
    for (auto ch : c)
        std::cout << std::bitset<8>(ch) << ' ';
    std::cout << "\nc: ";
    for (auto ch : c)
        std::cout << static_cast<int>(ch) << ' ';
}



/*
run:

a: 01000001 01100101 01110010 01111001 01101110 
b: 01000001 01101100 01100010 01110101 01110011 
c: 00000000 00001001 00010000 00001100 00011101 
c: 0 9 16 12 29 

*/

 



answered Jul 12, 2025 by avibootz
0 votes
#include <iostream>
#include <cstdint>
#include <vector>
#include <bitset>

// XOR two byte arrays of the same length
std::vector<uint8_t> xorBytes(const std::vector<uint8_t>& a, const std::vector<uint8_t>& b) {
    std::vector<uint8_t> result(a.size());
    for (size_t i = 0; i < a.size(); ++i) {
        result[i] = a[i] ^ b[i];
    }
    return result;
}

// Print byte array as bitset
void printBitsetArray(const std::string& label, const std::vector<uint8_t>& array) {
    std::cout << label << ": ";
    for (auto ch : array)
        std::cout << std::bitset<8>(ch) << ' ';
    std::cout << '\n';
}

int main() {
    std::vector<uint8_t> a{'A', 'e', 'r', 'y', 'n'};
    std::vector<uint8_t> b{'A', 'l', 'b', 'u', 's'};

    std::vector<uint8_t> c = xorBytes(a, b);

    printBitsetArray("a", a);
    printBitsetArray("b", b);
    printBitsetArray("c", c);

    std::cout << "c: ";
    for (auto ch : c)
        std::cout << static_cast<int>(ch) << ' ';
}



/*
run:

a: 01000001 01100101 01110010 01111001 01101110 
b: 01000001 01101100 01100010 01110101 01110011 
c: 00000000 00001001 00010000 00001100 00011101 
c: 0 9 16 12 29 

*/

 



answered Jul 12, 2025 by avibootz

Related questions

1 answer 60 views
60 views asked Jul 12, 2025 by avibootz
1 answer 65 views
65 views asked Jul 12, 2025 by avibootz
1 answer 93 views
1 answer 64 views
64 views asked Jul 12, 2025 by avibootz
1 answer 72 views
72 views asked Jul 12, 2025 by avibootz
...