Pourquoi ça ?
console.log("1100" ^ "0001")
=> 1101 // as expected
console.log("1100" ^ "1001")
=> 1957 // ???
Veuillez expliquer. Merci.
Pourquoi ça ?
console.log("1100" ^ "0001")
=> 1101 // as expected
console.log("1100" ^ "1001")
=> 1957 // ???
Veuillez expliquer. Merci.
Ces chiffres sont interprétés comme des nombres décimaux.
Essayez :
console.log(parseInt("1100", 2) ^ parseInt("1001", 2))
Bien sûr, la réponse (0101) est imprimée en décimal (5).
La grammaire des jetons JavaScript prend en charge les nombres en décimal, octal et hexa, mais pas en binaire. Ainsi :
console.log(0xC0 ^ 0x09)
La première a fonctionné, d'ailleurs, car 1100 (décimal) est 1101 (décimal) après le xor avec 1.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.