0 -1 1 -2 2 -3 3...
0 1 2 3 4 5 6...
- npm install nv-number-zigzag
const { encd,decd} = require("nv-number-zigzag");
> x.encd(0)
0
> x.encd(-1)
1
> x.encd(1)
2
> x.encd(-2)
3
> x.encd(2)
4
> x.encd(-3)
5
> x.encd(3)
6
>
> x.decd(x.encd(0))
0
> x.decd(x.encd(-1))
-1
> x.decd(x.encd(0))
0
> x.decd(x.encd(1))
1
> x.decd(x.encd(2))
2
> x.decd(x.encd(2**30-1))
1073741823
> 2**30-1
1073741823
>
> x.decd(x.encd(2**53))
9007199254740992
> 2**53
9007199254740992
>
> x.decd(x.encd(-(2**30)))
-1073741824
> -(2**30)
-1073741824
>
>
>
{
MIN_SMI: -2147483648,
MAX_SMI: 2147483647,
MIN_SMI_BI: -2147483648n,
MAX_SMI_BI: 2147483647n,
is_smi: [Function: is_smi],
is_smi_bi: [Function: is_smi_bi],
_bi: [Function: _bi],
_num: [Function: _num],
_encd_smi: [Function: _encd_smi],
_encd_bi: [Function: _encd_bi],
_encd_between_smi_bi: [Function: _encd_between_smi_bi],
_decd_smi: [Function: _decd_smi],
_decd_bi: [Function: _decd_bi],
_decd_between_smi_bi: [Function: _decd_between_smi_bi],
MIN_SMI_CAN_BE_ENCDED: -1073741824,
MAX_SMI_CAN_BE_ENCDED: 1073741823,
MIN_SMI_BI_CAN_BE_ENCDED: -1073741824n,
MAX_SMI_BI_CAN_BE_ENCDED: 1073741823n,
is_smi_can_be_encded: [Function: is_smi_can_be_encded],
encd: [Function: encd],
decd: [Function: decd]
}