Al escribir estas tres declaraciones en una consola de JavaScript (por ejemplo, node.js)
console.log(5 & 0x5555555555555); console.log(5 & 0x55555555555555); console.log(5 & 0x555555555555555);...entonces obtengo las siguientes respuestas:
> console.log(5 & 0x5555555555555); 5 undefined > console.log(5 & 0x55555555555555); 4 undefined > console.log(5 & 0x555555555555555); 0 undefinedEsto parece muy espeluznante: el primer valor hexadecimal tiene 13 de 5 dígitos, el último tiene 15 de 5 dígitos. Cada tres salidas deben ser "5" pero la segunda y la tercera están mal.
Por supuesto, quiero hacer una manipulación de bits con valores de 64 bits (que pueden tener hasta 16 dígitos hexadecimales). ¿Alguien puede decirme cuál es mi error en esta situación?