Когда я пытаюсь преобразовать шестнадцатеричную строку в целое число в JavaScript, я не получаю то же число, что и в Python - PullRequest
0 голосов
/ 05 октября 2019

Я пытался преобразовать шестнадцатеричную строку в целое число в JavaScript, но число, которое я получаю, не совпадает с числом, которое я получаю в python.

Вот мой код в JS:

var x = CryptoJS.MD5('h').toString();
BigInt(parseInt(x, 16));

Вот что я получаю:

49268479078006859472353325704298889216n

И когда я запускаю это в python:

int(hashlib.md5('h'.encode()).hexdigest(), 16)

Я получаю:

49268479078006861543109070154241760913

1 Ответ

0 голосов
/ 05 октября 2019

parseInt уже потерял для вас точность, преобразовав в число перед преобразованием в BigInt.

Вы можете использовать префикс… 1005 *? Это кажется странным, как будто отсутствует BigInt.parse API, но все готово.

BigInt('0x' + x)
...