JS 中 BigInt 的基本使用方法

阅读时长 4 分钟读完

在 JavaScript 中,数字是以 64 位浮点数的形式存储的。这对于大部分计算来说已经足够了,但对于一些需要处理超过 253 的大数运算来说就有些捉襟见肘了。于是 ECMAScript2015 引入了 BigInt 类型,它可以精确表示任意大的整数,可以做到精度不会丢失,成为了新的数字类型。

如何创建 BigInt

BigInt 类型的创建方式很像 Number 类型,只需要在数字后面加个 n 或是用 BigInt() 函数将数字转换为 BigInt 类型,如1234567890123456789123456789n或者BigInt(1234567890123456789123456789)

以下是一个创建 BigInt 类型的示例代码:

如何进行 BigInt 的运算

BigInt 可以进行所有数字类型支持的基本运算,如加、减、乘、除、求余等,但需要注意的是,BigInt 与 Number 类型之间的运算需要进行类型转换,否则会出现预期之外的结果。

以下是常见的 BigInt 运算方法:

运算符号同 Number 类型,注意 BigInt 和 Number 进行运算时的类型转换,例如:

另外需要注意,在 BigInt 中除法运算会向下取整。例如:

如何进行 BigInt 的位运算

位运算是 BigInt 特有的运算方式。BigInt 运算支持常见的位运算操作符,如按位与、按位或、按位异或、左移、右移等。以下是常见的 BigInt 按位运算方法:

如何将 BigInt 转换成 Number

由于 BigInt 可以表示的范围比较大,在某些场景下,比如进行合并排序算法、统计奇偶数的数量等操作需要将 BigInt 转换成 Number。

BigInt 转换成 Number 是需要特别注意的,需要注意转换的过程中可能会出现溢出的情况。可以使用 Number() 函数转换 BigInt,但是需要注意超出最大安全数值范围的 BigInt 实例转换成 Number 时会丢失精度,因此需要格外小心。

以下是 BigInt 转换成 Number 的方法,需要注意精度问题:

总结

BigInt 类型的引入可以更好地处理大数的运算问题,同时也需要我们在使用 BigInt 类型时注意类型转换、精度控制等问题,才能发挥它的最大作用。

参考链接

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a53bec48841e98941bbca3

纠错
反馈