JavaScript位运算符详解:二进制表示、符号位和常见应用

0 下载量 108 浏览量 更新于2024-08-30 收藏 79KB PDF 举报
javascript运算符——位运算符全面介绍 javascript中的位运算符是一种非常底层的运算符,由于其操作的结果不太直观,所以并不常用。但是,其速度极快,且合理使用能达到很好的效果。本文将介绍javascript中常常被忽视的运算符——位运算符。 一、位运算符的基本概念 在javascript中,所有数值都以IEEE-754 64位格式存储,但是位操作符并不直接操作64位的值,而是以32位带符号的整数进行运算的,并且返回值也是一个32位带符号的整数。这种位数转换使得在对特殊的NaN和Infinity值应用位操作时,这两个值都会被当成0来处理。如果对非数值应用位操作符,会先使用Number()将该值转换成数值再应用位操作,得到的结果是一个数值。 二、位运算符的种类 javascript中的位运算符有六种:按位与(&)、按位或(|)、按位异或(^)、按位左移(<<)、按位右移(>>)和无符号右移(>>>)。 其中,按位或(|)运算符可以用来取整数的整数部分。例如: ``` console.log(1.3|0);//1 console.log(1.8|0);//1 console.log(Infinity|0);//0 console.log(-Infinity|0);//0 console.log(NaN|0);//0 console.log('12px'|0);//0 console.log('12'|0);//12 ``` 三、有符号整数的二进制表示 在javascript中,有符号整数使用32位中的前31位表示整数数值,用第32位表示整数符号,0表示正数,1表示负数。表示符号的位叫做符号位,符号位的值决定了其他位数值的格式。其中,正数以纯二进制格式存储,31位中的每一位都表示2的幂。例如,数值18的二进制表示是00000000000000000000000000010010,或者更简洁的10010。这是5个有效位,这5位本身就决定了实际的值。 ``` console.log((18).toString(2));//"10010" console.log(0b00000000000000000000000000010010);//18 ``` 四、负数的二进制表示 负数同样以二进制存储,但使用的格式是二进制补码。计算一个数值的二进制补码,需要经过下列3个步骤: 1. 求这个数值绝对值 本文只是对javascript中的位运算符进行了简单的介绍,更多的内容还需要进一步学习和实践。