function xorBytes(a, b) {
const result = new Uint8Array(a.length);
for (let i = 0; i < a.length; i++) {
result[i] = a[i] ^ b[i];
}
return result;
}
function printBitsetArray(label, array) {
let output = label + ": ";
for (let byte of array) {
output += byte.toString(2).padStart(8, '0') + " ";
}
console.log(output);
}
// Initialize arrays using ASCII codes
const a = new Uint8Array([..."Aeryn"].map(ch => ch.charCodeAt(0)));
const b = new Uint8Array([..."Albus"].map(ch => ch.charCodeAt(0)));
const c = xorBytes(a, b);
printBitsetArray("a", a);
printBitsetArray("b", b);
printBitsetArray("c", c);
process.stdout.write("c: ");
for (let byte of c) {
process.stdout.write(byte + " ");
}
/*
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
*/