我一直在尝试在JavaScript中将十六进制字符串转换为整数,但得到的数字与Python语言中得到的数字不同。
以下是我在JS中的代码:
var x = CryptoJS.MD5('h').toString();
BigInt(parseInt(x, 16));
下面是我得到的结果:
49268479078006859472353325704298889216n
当我在python中运行这段代码时:
int(hashlib.md5('h'.encode()).hexdigest(), 16)
我得到了:
49268479078006861543109070154241760913
发布于 2019-10-05 08:36:09
在您转换为BigInt
之前,通过转换为数字,parseInt
已经为您丢失了精度。
您可以使用…0x
前缀?这看起来很奇怪,好像有一个缺失的BigInt.parse
应用程序接口,但这就对了。
BigInt('0x' + x)
https://stackoverflow.com/questions/58246452
复制相似问题