function bitwiseAND(n1, n2) { let a = n1.toString(2).padStart(8, "0"); let b = n2.toString(2).padStart(8, "0"); let x = ""; for (let i = 0; i < 8; i++) { if (+a[i] === 1 && +a[i] === +b[i]) x = x + "1"; else x = x + "0"; } return +x } function bitwiseOR(n1, n2) { let a = n1.toString(2).padStart(8, "0"); let b = n2.toString(2).padStart(8, "0"); let x = ""; for (let i = 0; i < 8; i++) { if (+a[i] === 1 || +b[i] === 1) x = x + "1"; else x = x + "0"; } return +x } function bitwiseXOR(n1, n2) { let a = n1.toString(2).padStart(8, "0"); let b = n2.toString(2).padStart(8, "0"); let x = ""; for (let i = 0; i < 8; i++) { if ((+a[i] === 1 && +b[i] === 0) || (+a[i] === 0 && +b[i] === 1)) x = x + "1"; else x = x + "0"; } return +x }El desafío era escribir tres funciones para calcular el AND bit a bit, el OR bit a bit y el XOR bit a bit de dos números.
Su código es bueno, lo único que falta es convertir el binario a un número entero en sus valores de retorno.
en lugar de
return +xProbar
return parseInt(x, 2)