我在 javascript 中使用按位运算,但我注意到一些看起来不一致的东西。
现在,我正在使用 XOR (^) 操作。当我这样做时'0101'^'0001'
,我得到 4,这是有道理的,因为 4 = 0100 二进制。但是当我这样做时'10001'^'01111'
,我得到 9030,当我认为我应该得到 11110 时。格式是,据我所知,相同;只有字符串不同。
console.log(5^1); //4
console.log('0101'^'0001'); // 100 = 4
console.log(17^15); //30
console.log('10001'^'01111'); //9030...why? shouldn't it be '11110'?
为什么这段代码会产生这个结果?
现在,如果我这样做:
console.log(('0b'+'10001')^('0b' + '01111')); //30
为什么'0b'
在 17 和 15 上进行按位运算时,我必须添加以指定字符串是二进制序列,而不是在 5 和 1 上?