Skip to content

Instantly share code, notes, and snippets.

@dailc
Created June 11, 2017 01:43
Show Gist options
  • Save dailc/97c5ee269f0a82359732857fd7d1beba to your computer and use it in GitHub Desktop.
Save dailc/97c5ee269f0a82359732857fd7d1beba to your computer and use it in GitHub Desktop.
[JS二进制位操作] JS中二进制位操作的一些知识点 tags:bitmanipulation
## 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