JavaScript的Number採用64位元的IEEE 754標準來表示整數和浮點數數值,其中整數的安全範圍在-253 - 1到253 - 1之間。換句話說,Node.js既不能直接使用到32位元的整數,同時也無法使用64位元的整數。因此,如果要拿Node.js來做一些稍微複雜的計算,就需要撰寫額外的程式來處理資料型態的部份,進而影響到執行效能。



int64-napi

「int64-napi」是一個使用Node.js 8之後才支援的N-API所開發的模組,使用C語言原生的「int64_t」型態來直接進行64位元的整數運算,可以將效能的影響減到最低。

GitHub:

https://github.com/magiclen/node-int64

npm:

https://www.npmjs.com/package/int64-napi

安裝

直接使用npm指令進行安裝:

npm install int64-napi --save

用法

初始化

使用「require」函數來引入「int64-napi」模組。利用模組的「Int64」屬性可取得「Int64」物件的建構子。

「Int64」的實體可以用以下幾種不同的資料來建立:

  • 其它Int64的實體。
  • 兩個整數值,分別代表64位元長整數的低位元和高位元的部份。
  • 一個53位元的整數。
  • 十進制數值的字串。
  • 以「0x」開頭的十六進制數值的字串。
  • 以「0b」開頭的八進制數值的字串。
  • 一個存著8個位元組資料的Buffer。
靜態函數的用法
Random

Add

Subtract

multiply

divide

mod

shiftLeft

shiftRight

shiftRightUnsigned

rotateRight

rotateLeft

and

or

xor

nand

nor

xnor

not

eq(等於)

ne(不等於)

gt(大於)

gte(大於等於)

lt(小於)

lte(小於等於)

comp(比較)

若第一個參數大於第二個參數,回傳1。
若第一個參數小於第二個參數,回傳-1。
若第一個參數等於第二個參數,回傳0。

物件方法的用法
建立物件實體

物件方法

物件方法的種類和靜態函數大致相同,請參考以下範例: