原文作者:Dr. Axel Rauschmayer
根据ECMAScript规范,在JavaScript中的所有的数字均是浮点型。但是偶尔也会时不时窜出整型的概念。本博文就来阐释一下。
何为整型?
JavaScript只有浮点型数字。整型会以两种方式在内部出现。第一种,很多JavaScript引擎会存储一个足够小并且不带小数的数作为整数(比如,31比特),尽可能维持较长时间。如果一个数的数量级太大或者该数含有小数,那么引擎就必须切换回浮点型。
第二种,ECMAScript规范中含有整型运算符:即,所有的位运算符。这些运算符会转换操作符至32位的整型,然后返回该32位整型。对于规范来说,整型只是意味着没有小数,32位意味着它们是归属在一定的范围内。对于引擎来说,32位整型一个通常以整型(非浮点型)来引入和维护的。
整型的范围
在JavaScript中,整型的以下范围在内部极为重要:
安全整型,JavaScript支持的最大实际可用的整型范围:
带符号53比特,范围(-2的53次方,2的53次方)
数组索引:
无符号32比特
最大长度:2的32次方-1
索引的范围:[0, 2的32次方-1 )(不包括最大长度)
按位操作数:
无符号右移(>>>):32比特,无符号,范围[ 0, 2的32次 )
所有的其他位操作符:32比特,有符号,范围[-2的32次 , 2的32次)
字符码,UTF-16编码单位数:
以String.fromCharCode()接收
以String.prototype.charCodeAt()返回
16比特,无符号
更多关于整型的文章
所有关于整型的文章均以 标签标识。以下两篇包含了整型转换:
通过移位运算符来转换整型:
通过parseInt()来转换整型:
引用
标签 :位操作符的文章
阅读(5813) | 评论(0) | 转发(0) |