lam*_*amu 8 javascript bit-manipulation
为什么是这样:
console.log("1100" ^ "0001")
=> 1101 // as expected
console.log("1100" ^ "1001")
=> 1957 // ???
Run Code Online (Sandbox Code Playgroud)
请解释.谢谢.
Poi*_*nty 11
这些数字被解释为十进制数字.
尝试:
console.log(parseInt("1100", 2) ^ parseInt("1001", 2))
Run Code Online (Sandbox Code Playgroud)
当然答案(0101)以十进制(5)打印.
JavaScript令牌语法支持十进制,八进制和十六进制数字,但不支持二进制数字.从而:
console.log(0xC0 ^ 0x09)
Run Code Online (Sandbox Code Playgroud)
顺便说一句,第一个工作,因为1100(十进制)是xor后的1101(十进制).