Я использую BigInt.js Лимона Бэрда (документация) для обработки больших целых чисел. Мне нужно иметь возможность получить одно и то же целое число из BigInt в Ruby.
Пример JS-файла:
var number = "1234567890987654321";
var bigNumber = str2bigInt(number, 10, 80); //10: input = Decimal
var bigNumber64 = bigInt2str(bigNumber, 64); //64: ouput = Base64
console.log(bigNumber64);
//--> 14Y4FInR1on
Пример рубинового файла:
big_number_64 = '14Y4FInR1on'
big_number = Base64.decode64(big_number_64) #input: Base64: output: decoded string
big_number = big_number.unpack('B*').first #B*: output = Binary
big_number = big_number.to_i(2) #read big_number as binary, output = integer
puts big_number
#--> 26313825004518719100904402231695296969994
Моя проблема в том, что мне нужно, чтобы это было равно
1234567890987654321 != 26313825004518719100904402231695296969994
я пробовал
big_number = big_number_64.unpack('m*').first.unpack('B*').first
И попытался обратить процесс вспять и проверить Base64 == Base64 вместо Decimal == Decimal, и я не могу сделать их равными.
Пожалуйста помоги.
bigint
. И я не могу передать сам объект на сервер. Я попытался отправить его как целое число, но у меня возникла проблема (я думаю, это связано с тем, что открытый ключ с десятичной базой очень и очень длинный, чтобы его можно было передать в качестве параметра GET). Вот почему я подумал сначала преобразовать его в Base64. . - person Jay-Ar Polidario   schedule 08.03.2014