Skip to content

Instantly share code, notes, and snippets.

@YonatanKra
Last active August 11, 2018 06:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save YonatanKra/a4d059a115aa00cadb3620df364615de to your computer and use it in GitHub Desktop.
Save YonatanKra/a4d059a115aa00cadb3620df364615de to your computer and use it in GitHub Desktop.
BitwiseAND
function BitwiseAND(operand1, operand2) {
// convert to binary
let binary1 = (operand1 >>> 0).toString(2);
let binary2 = (operand2 >>> 0).toString(2);
// pad with zeros to the left to get 32bit binary
binary1 = binary1.padStart(32, '0');
binary2 = binary2.padStart(32, '0');
// if bigger than 32 bits, cut the most significant bits
binary1.length > 32 ? binary1 = binary1.slice(binary1.length-32);
binary2.length > 32 ? binary2 = binary2.slice(binary2.length-32);
//init an empty result string
let result = '';
// Go over the strings - they are are both 1, set 1. Otherwise, set 0
for (var i = 0; i < binary1.length; i++) {
if (Number(binary1[i]) && Number(binary2[i])) {
result += '1';
} else {
result += '0';
}
}
return parseInt(result, 2);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment