Questo suggerisce semplicemente di memorizzare BigInts come array:
// n = -123
var n = {
sign: -1,
digits: [3, 2, 1]
};
Tuttavia, se hai "big ints", quella matrice diventerà grande:
var n = {
sign: -1,
digits: [ 1, 2, 3, ..., n_100 ]
};
Un array di cento cifre, che sarebbe piuttosto lento se ce ne fosse molto.
Forse c'è un modo per combinare i numeri in un altro modo, quindi ogni numero nell'array va fino a quando non raggiunge il limite massimo a 32 o 64 bit. In questo modo puoi comprimere saldamente.
Ti stai chiedendo se c'è un modo per farlo. Sembra che sia ciò che viene fatto qui :
{
type: 'BigInt',
sign: 0,
num_digits: 3,
digits: [0x12…, 0x34…, 0x56…],
}