编程中我们通常以1代表true,以0代表false
而js中,true和false是布尔值,倘若我要将true变为1,false变为0该如何办?
ECMAScript提供了有一种运算符:位运算not
下面是W3School提供的例子
位运算 NOT 由否定号(~)表示,它是 ECMAScript 中为数不多的与二进制算术有关的运算符之一。
位运算 NOT 是三步的处理过程:
-
把运算数转换成 32 位数字
-
把二进制数转换成它的二进制反码
-
把二进制数转换成浮点数
例如:
var iNum1 = 25; //25 等于 00000000000000000000000000011001
var iNum2 = ~iNum1;//转换为 11111111111111111111111111100110
alert(iNum2); //输出 "-26"
位运算 NOT 实质上是对数字求负,然后减 1
,因此 25 变 -26。用下面的方法也可以得到同样的方法:
var iNum1 = 25;
var iNum2 = -iNum1 -1;
alert(iNum2); //输出 -26
接下来看一下NOT运算符对true和false的影响
console.log(true) //true
console.log(~true) //-2
console.log(false) //false
console.log(~false) //-1
按照上面所说
“位运算 NOT 实质上是对数字求负,然后减 1”,那么它的逆运算就是数字加1后再求负
,得到
true = -(-2+1) = -(-1) = 1
false = -(-1+1) = -(0) = 0
因此,只需要对
~true和
~false再一次NOT运算,就可以得到1和0
console.log(~true) //-2
console.log(~~true) //1
console.log(~false) //-1
console.log(~~false) //0
分享到:
相关推荐
在Three.js中, BSP对象可以表示一个3D几何体,并支持基本的布尔运算,如与(AND)、或(OR)、非(NOT)和异或(XOR)。 布尔运算的具体步骤通常包括以下几个部分: 1. **构建BSP树**:首先,需要将每个3D几何体...
在JavaScript中,原始数据类型(如Number)对大数的支持有限,...总之,bn.js库为JavaScript开发者提供了一种强大且灵活的方式来处理大数运算,无论是在加密算法还是其他需要精确数学计算的场景下,都能发挥重要作用。
在WebGL图形编程领域,Three.js作为一款强大的JavaScript库,为开发者提供了丰富的3D建模和渲染功能。然而,对于复杂的3D操作,如墙体挖洞,即在3D模型上进行切割或镂空,Three.js原生库并未提供直接的支持。此时,...
JavaScript中的进制转换和位运算在编程中虽然不常见,但却是理解计算机底层运作和优化算法的基础。本文将深入探讨这两个主题,通过实例解析帮助读者掌握相关知识。 首先,我们来了解一下进制转换。在计算机科学中,...
JavaScript中的逻辑Not运算符,表示为"!",它在处理逻辑表达式时起着关键作用。这个运算符的目的是对给定的值进行布尔转换,并返回其相反的布尔值。这意味着,如果运算符前的值为真(true),则逻辑Not会将其转换为...
- **位运算**:支持并(`or()`)、交(`and()`)、差(`xor()`)和非(`not()`)操作,可实现位级别的逻辑运算。 - **遍历和计数**:可以遍历所有设置的位,或计算设置位的数量,这对于统计或查找操作非常有用。 ...
raphael.boolean.js-使用Raphaël执行布尔运算 该插件为javascript矢量库Raphaël( )提供了布尔操作。 您可以使用单个元素(而不是集合)来执行 联合[A + B | A或B] 差异[A-B | A NOT B] 交集[A * B | A和B] ...
12. 非数字值:Javascript中的非数字值可以是NaN(Not a Number),例如“十九”+“八十”的结果是NaN。 13.if-else语句:Javascript中的if-else语句可以根据条件判断的结果进行跳转,例如`if(a) if(b) c=0; else ...
本版中只有一个用于生产环境的文件:BigDecimal-all-last.min.js,大小为26K,如果WEB服务器打开GZIP压缩,可以减小至7K,如需完整版本请移步至:http://download.csdn.net/detail/aquaqu2009/4575230 简单用法: ...
在JavaScript中,数学运算主要分为两大类,一类是通过基本运算符实现的,另一类是通过Math对象提供的计算函数实现的。下面详细介绍这两类数学运算的使用方法及特殊值的处理。 ### 基本运算符 JavaScript中的基本...
接下来,我们可能会使用一种高级编程语言,如Python、Java、C++或JavaScript,来实现这个课程设计。例如,在Python中,你可以创建一个简单的函数,接受两个参数并根据用户的选择执行相应的运算: ```python def ...
JavaScript的位运算符包括按位与(&)、按位或(|)、按位异或(^)、按位非(~)以及左移()、有符号右移(>>)和无符号右移(>>>)等。位运算符可以对数字的二进制位进行操作,通常用于性能要求较高的场景。 **算术运算(Math...
此外,该库还提供了位操作函数,如`and(x, y)`(按位与)、`or(x, y)`(按位或)、`xor(x, y)`(按位异或)和`not(x)`(按位非),这对于处理二进制数据或加密算法至关重要。 使用javascript-biginteger库时,需要...
1. **传智播客公开课-JavaScript位运算和逻辑运算符.avi** - 这部分课程将介绍JavaScript中的位运算符(如按位与、或、非、异或)和逻辑运算符(如AND、OR、NOT)。位运算符通常用于低级别的数据操作,例如处理二...
JavaScript程序通常以`.js`为扩展名,由浏览器直接解释执行,而无需像Java那样依赖于JVM(Java虚拟机)。值得注意的是,由于不同的浏览器可能有不同的解析方式,因此编写JavaScript代码时需考虑浏览器兼容性。 ### ...
然而,由于DES设计时的安全考虑,每个64位的数据块实际上只有56位参与了加密运算。为了适应不同长度的数据,DES支持填充模式,如PKCS7,它能确保数据被填充到56位的整数倍,因此描述中提到的“50字节”可能是指在...
JavaScript中的位运算符是用于对二进制表示的数字进行操作的运算符,它们包括按位非(NOT)、按位与(AND)、按位或(OR)、按位异或(XOR)、左移、有符号右移和无符号右移。这些运算符执行的操作是在数字的二进制表示上...
在JavaScript编程语言中,`undefined` 和 `not defined` 是两个不同的概念,它们代表了变量或属性的不同状态。本文将详细解析这两个概念的区别,并通过实际的测试案例进行演示。 首先,`undefined` 是一个预定义的...
4. **变量运算**:变量可以参与各种运算,包括四则运算(加、减、乘、除)、逻辑运算(AND、OR、NOT等)以及其他算术和比较运算。 5. **基本语法**:JavaScript中的条件语句,如`if`,是进行逻辑判断的关键。基本...