javascript - JavaScript:parseInt(string, 36) 将不同的字符串转换为相同的数字
问题描述
我对字符串转换有疑问:
像这样使用parseInt(string[,radix])
时:
BigInt(parseInt('something', 36))
它输出:80920602611116n
. 使用不同的输入,如下所示:
BigInt(parseInt('somethink', 36))
它输出:80920602611120n
,这当然是另外一回事。
但是,如果它是一个较长的字符串,则输出编号有时是相同的:
BigInt(parseInt('thisisactuallyadifferentsomething', 36))
BigInt(parseInt('thisisactuallyadifferentsomethink', 36))
这将为1867697451648055638757226289961051507749359223570432n
两者输出,尽管它们是不同的。
我知道,整数的安全表示是有限制的,这就是我使用 BigInt 的原因,它没有限制。
我必须能够区分这种大小的字符串,同时使用 BigInt 来表示这些字符串。
解决方案
请参阅将大整数编码为 base62,但替换以下基数 62 位...
var digits = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
...以 36 位为基数...
var digits = '0123456789abcdefghijklmnopqrstuvwxyz';
希望这可以帮助...
推荐阅读
- sql - 如何从 oracle XMLTYPE 列中选择 XML 属性?
- typescript - 如何使用 CDK(打字稿)为 KMS 密钥设置条件?
- bash - Bash 中的单引号条目
- c# - Get the number of a certain Button in stack panel
- javascript - 是否有一种优雅的方法来检查 POST 请求正文是否与端点的预期参数匹配?
- python - Python,从 URL 更改桌面背景
- bash - Bash curl邮件:如何上传文件名中带有变音符号的文件?
- javascript - 如何使用 react 和 javascript 修复按钮以在禁用和启用状态之间切换?
- php - PHP 警告 array_column() 和 array_search()
- javascript - 如何使用 Vuejs 从数据库中填充值