use*_*099 45 javascript boolean-expression
我有3个独立的布尔变量,bit1
,bit2
和bit3
我需要计算十进制整数相当于在JavaScript?
yck*_*art 77
+true //=> 1
+false //=> 0
+!true //=> 0
+!false //=> 1
Run Code Online (Sandbox Code Playgroud)
Sam*_*uel 30
三元运算符是一种快速的单行解决方案:
var intVal = bit1 ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)
如果您不熟悉三元运算符,则需要采用该形式
<boolean> ? <result if true> : <result if false>
Run Code Online (Sandbox Code Playgroud)
来自Sime Vidas的评论,
var intVal = +bit1;
Run Code Online (Sandbox Code Playgroud)
效果也一样,而且速度更快.
Eth*_*own 13
如果您要问的是如何根据bit1(MSB),bit2和bit3(LSB)获取3位整数值,则可以执行以下操作:
var intval = bit1 << 2 | bit2 << 1 | bit3;
Run Code Online (Sandbox Code Playgroud)
left shift(<<
)会自动将布尔值转换为相应的int值.
现场演示: http ://jsfiddle.net/DkYqQ/
使用~~:
bit1 = ~~bit1; // bit1 = true will return 1 or bit1 = false rtuen 0
bit2 = ~~bit2;
bit3 = ~~bit3;
sum = bit1 + bit2 + bit3;
Run Code Online (Sandbox Code Playgroud)