首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >翻译成另一个数字系统JS

翻译成另一个数字系统JS
EN

Stack Overflow用户
提问于 2017-05-19 21:54:49
回答 1查看 78关注 0票数 1

我有一个字符串,我需要将这个字符串转换成另一个数字系统。

1959113774617397110401052 -十进制数系统的十进制记数法(10到36)。

如果我尝试使用以下代码:

代码语言:javascript
复制
var master = 1959113774617397110401052;
parseInt(master, 10).toString(36);
//8v0wc05bcz000000

它不能正常工作。

你能帮助我知道,我的错误在哪里,以及如何正确使用它吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-05-20 01:26:52

对于超出带符号Int32的范围的整数计算,您需要使用像Decimal.js这样的多精确库。可由64位浮点数表示的连续整数范围。举个例子:

代码语言:javascript
复制
var astr = '1959113774617397110401052'
var a =new Decimal(astr)
var out = '';
while( a > 0 ) {
    var d = a.mod(36).toNumber();
    a = a.divToInt(36);
    if(d>9) d=d+39; // d+7 for upper case
    out = String.fromCharCode(48+d)+out
}
var my_div = document.getElementById("my_div")
my_div.innerHTML += astr+" in base 36 is "+out;
代码语言:javascript
复制
<script src="https://raw.githubusercontent.com/MikeMcl/decimal.js/master/decimal.min.js"></script>
<div id="my_div"></div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44071909

复制
相关文章

相似问题

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