首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我尝试在JavaScript中将十六进制字符串转换为整数时,得到的数字与在python中得到的数字不同

当我尝试在JavaScript中将十六进制字符串转换为整数时,得到的数字与在python中得到的数字不同
EN

Stack Overflow用户
提问于 2019-10-05 15:56:04
回答 1查看 45关注 0票数 0

我一直在尝试在JavaScript中将十六进制字符串转换为整数,但得到的数字与Python语言中得到的数字不同。

以下是我在JS中的代码:

代码语言:javascript
运行
复制
var x = CryptoJS.MD5('h').toString();
BigInt(parseInt(x, 16));

下面是我得到的结果:

代码语言:javascript
运行
复制
49268479078006859472353325704298889216n

当我在python中运行这段代码时:

代码语言:javascript
运行
复制
int(hashlib.md5('h'.encode()).hexdigest(), 16)

我得到了:

代码语言:javascript
运行
复制
49268479078006861543109070154241760913
EN

回答 1

Stack Overflow用户

发布于 2019-10-05 16:36:09

在您转换为BigInt之前,通过转换为数字,parseInt已经为您丢失了精度。

您可以使用…0x前缀?这看起来很奇怪,好像有一个缺失的BigInt.parse应用程序接口,但这就对了。

代码语言:javascript
运行
复制
BigInt('0x' + x)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58246452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档