【发布时间】:2017-12-06 07:41:19
【问题描述】:
在下面的代码中,我的理解是 & 应该给出一个结果二进制字符串,其中每个字符串上的每个对应数字都是 1,但是我得到的结果是:“98435”,我期望的是: “101011”。我的误解在哪里?我怎样才能实现我想要做的事情?
const bool = "101011";
const bool2 = "111011";
const and = bool & bool2;
console.log("bool: "+bool+", bool2: "+bool2+", &: "+and);
【问题讨论】:
-
101,001 和 111,011(以 10 为底)非常正确地是 98435 以 10 为底 - 查看这些数字的二进制以了解原因...
-
(parseInt("101011",2) & parseInt("111011",2)).toString(2)是您认为您的代码正在执行的操作 - javascript 不能那样工作 -
(43 & 59).toString(2) - 我认为你需要这样做
-
“我的误解在哪里?”。在认为“101011”是一个数字时,它是一个字符串。 ;-)
-
值得注意的是,当在数学运算中使用该字符串时,该字符串被“强制”为 十进制 数字(
+除外)
标签: javascript binary bitwise-operators