Created
June 11, 2017 01:43
-
-
Save dailc/97c5ee269f0a82359732857fd7d1beba to your computer and use it in GitHub Desktop.
[JS二进制位操作] JS中二进制位操作的一些知识点 tags:bitmanipulation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## JS中的数值范围 | |
JS中Number类型的实质是64位浮点数 | |
所以表示的范围是:`正负1.7976931348623157乘以10的308次方` | |
这两个边界值可以分别通过访问Number对象的MAX_VALUE属性和MIN_VALUE属性来获取 | |
能表示的最小小数是:`正负5乘以10的负324次方` | |
对于整数,在ECMAScript5规范中规定,无论正负数的值都不能大于`2^53`,在这个范围内,js的计算时精确的,一旦超出,js依旧可以计算,但是无法保证数值的精确。 | |
## 位操作的位数限制 | |
JS中的位操作默认是基于`32`位有符号整型的。 | |
范围为:`-2^32到2^32`之间的整数。 | |
所以有时候进行无符号操作时需要手动转换。 | |
## 转为无符号数字 | |
通过`>>> 0`可以转换为无符号整数, | |
反之通过 `<< 0` 可以转为有符号整数 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment